#xamarin #uno-platform
#xamarin #uno-платформа
Вопрос:
В VS 2019 — компиляционный проект Uno и минимальный пользовательский интерфейс. Я пытаюсь десериализовать некоторые XML-файлы. Это тривиально в мире Windows: просто ссылайтесь на него с помощью «using System.Xml.Serialization;» и добавьте «System.XML » к вашим ссылкам в вашем проекте. Все это просто работает. В Uno проекты не имеют раздела ссылок. И «Добавить ссылку» из общего проекта не дает, буквально, не фигурально, а буквально, никакого выбора. Ни черта не могу сделать. Но он не может разрешить атрибуты (например, [XmlAttribute(«…»)], [XmlRoot(«…»)]) В чем исправление? Спасибо.
Ответ №1:
Проблема, похоже, связана с неполной поддержкой macOS в Uno. Если какой-либо проект (платформа) не может разрешить ссылку, все решение прерывается, и System.Xml / System.Xml.Serialization неявно предоставляется Uno, поэтому функциональность нарушена.
Решение состоит в том, чтобы явно добавить ссылку на проект .macOS. Это включило все из них.
Ответ №2:
Вы не можете добавлять ссылки на общий проект, потому что он не компилируется сам по себе. Это просто список файлов, которые включаются в любой проект, который ссылается на него. Вам нужно добавить необходимые ссылки на те проекты, которые ссылаются на общий проект ( MyUnoApp.Droid
MyUnoApp.UWP
MyUnoApp.WASM
т. Е., и т.д.)
В частности, в случае System.Xml.Serialization
, похоже, он доступен сразу для большинства платформ без необходимости добавлять дополнительные ссылки. В некоторых, например, macOS, это не так, но вы можете добавлять System.Xml
к этим «головным» проектам обычным способом, который вы описываете.
Комментарии:
1. Да, это необходимо. Но, возможно, потому, что я тоже использую macOS. Ну, пытаюсь. Но вы поняли суть этого…
2. Да, я тоже это вижу — я изначально не проверял macOS. Но «Добавить ссылку» в заголовке macOS будет работать. Я обновил ответ.