UWP .NET Native Issue
Я использую Prism 6 для UWP и Microsoft.NetCore.Uwp 5.2.2. Я столкнулся с проблемой в версии выпуска, что я не могу использовать отражение.
У меня есть такие предметы как IDictionary<string, ReadOnlyCollection<string>>
, Как добавить политику в default.rd.xml для них?
2 ответа
В моем проекте у нас недавно была похожая проблема с IDictionary
смотрите здесь. Я не знаю, похоже ли сообщение об ошибке на ваше, но решение в нашем случае заключалось в добавлении директив времени выполнения в файл .rd.xml, подобный этому:
<Type Name="System.Collections.Generic.IDictionary{System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}}" MarshalStructure="Excluded" />
Я не могу воспроизвести вашу проблему. Я запускаю проект в режиме релиза, который содержит IDictionary<string, ReadOnlyCollection<string>>
объекты, и я не встречаю никаких ошибок или исключений. Моя версия ОС - сборка 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
файл конфигурации, пожалуйста, обратитесь к этой статье. Если вы получили MissingMetadataException
в некоторых сценариях рефлексии вы можете следить за этим блогом, чтобы решить вашу проблему.