2017-03-02 25 views
0

私はUWPとMicrosoft.NetCore.Uwp 5.2.2用にPrism 6を使用しています。私はリフレクションを使用することができないリリースバージョンの問題に直面した。UWP .NETネイティブの問題

私はIDictionary<string, ReadOnlyCollection<string>>のようなオブジェクトを持っています。 default.rd.xmlにポリシーを追加するにはどうすればいいですか?

答えて

1

私のプロジェクトでは、IDictionaryと最近似た問題がありました。hereを参照してください。エラーメッセージはあなたに似ているかどうかは知りませんが、私たちの場合、解決策は次のように.rd.xmlファイルにランタイムディレクティブを追加しました:

<Type Name="System.Collections.Generic.IDictionary{System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}}" MarshalStructure="Excluded" /> 
+1

、ありがとうございました。問題はMarshalStructureポリシーに正確には当てはまらなかった、私は文法 –

1

問題を再現できません。私はIDictionary<string, ReadOnlyCollection<string>>オブジェクトを含むリリースモードでプロジェクトを実行しますが、エラーや例外は発生しません。私のOSバージョンはビルド14393で、ローカルマシンでテストしました。

エラーまたは例外が発生しているかどうかわからないため、次のコレクションの相対ポリシーをdefault.rd.xmlに追加してみてください。 rd.xml設定ファイルについて

<Assembly Name="*Application*" Dynamic="Required All" />  

<!--Add your application specific runtime directives here.--> 
<Namespace Name="System.Collections.ObjectModel" > 
<TypeInstantiation Name="ReadOnlyCollection" 
     Arguments="ContosoClient.DataModel.ProductGroup" Serialize="Public"/> 
<TypeInstantiation Name="ObservableCollection" 
     Arguments="ContosoClient.DataModel.ProductItem" Serialize="Public" /> 
<TypeInstantiation Name="ReadOnlyObservableCollection" 
     Arguments="ContosoClient.DataModel.ProductGroup" Serialize="Public" />  
</Namespace> 

詳細はthis articleを参照してください。反射シナリオでMissingMetadataExceptionを取得した場合は、this blogに従って問題を解決できます。

+0

感謝。やってみます。問題は、アプリケーションが中断して終了するときにこのプロパティを使用して保存することです。 Prismライブラリに精通しているかどうかはわかりませんが、保存したいすべてのプロパティの上に '[ReatorableState]'属性を使用しています。プリズムセッション状態サービスはこの属性を使用します。私は 'InvalidDataContractAttribute exception'を取得しています –

関連する問題