Не удается ссылаться System.xml в ООН

#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 будет работать. Я обновил ответ.