UWP .NET 本机问题
UWP .NET Native Issue
我将 Prism 6 用于 UWP 和 Microsoft.NetCore.Uwp 5.2.2。我在发布版本中遇到无法使用反射的问题。
我有IDictionary<string, ReadOnlyCollection<string>>
这样的对象。如何在 default.rd.xml 中为他们添加策略?
我无法重现您的问题。我 运行 一个包含 IDictionary<string, ReadOnlyCollection<string>>
对象的发布模式下的项目,我没有遇到任何错误或异常。我的 OS 版本是 build 14393,我在本地机器上测试过它。
由于我不确定你遇到了什么错误或异常,你可以尝试将以下集合相关策略添加到default.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>
有关 rd.xml
配置文件的更多详细信息,请参考 this article. If you got the MissingMetadataException
in some reflection scenarios you can follow this blog 以解决您的问题。
在我的项目中,我们最近遇到了与 IDictionary
类似的问题,请参阅 here。我不知道错误消息是否与您的类似,但我们的解决方案是在 .rd.xml 文件中添加类似于此的运行时指令:
<Type Name="System.Collections.Generic.IDictionary{System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}}" MarshalStructure="Excluded" />
我将 Prism 6 用于 UWP 和 Microsoft.NetCore.Uwp 5.2.2。我在发布版本中遇到无法使用反射的问题。
我有IDictionary<string, ReadOnlyCollection<string>>
这样的对象。如何在 default.rd.xml 中为他们添加策略?
我无法重现您的问题。我 运行 一个包含 IDictionary<string, ReadOnlyCollection<string>>
对象的发布模式下的项目,我没有遇到任何错误或异常。我的 OS 版本是 build 14393,我在本地机器上测试过它。
由于我不确定你遇到了什么错误或异常,你可以尝试将以下集合相关策略添加到default.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>
有关 rd.xml
配置文件的更多详细信息,请参考 this article. If you got the MissingMetadataException
in some reflection scenarios you can follow this blog 以解决您的问题。
在我的项目中,我们最近遇到了与 IDictionary
类似的问题,请参阅 here。我不知道错误消息是否与您的类似,但我们的解决方案是在 .rd.xml 文件中添加类似于此的运行时指令:
<Type Name="System.Collections.Generic.IDictionary{System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}}" MarshalStructure="Excluded" />