Protobuf-net не пишет xml;этот API предназначен для того, чтобы вы могли записывать данные protobuf в виде непрозрачного большого двоичного объекта (base-64) в потоке xml.Однако protobuf-net обычно очень рад разрешить параллельное использование с XmlSerializer
- он учитывает большинство тех же метафор.Скорее всего, просто использование new XmlSerializer(typeof(YourRootType))
для сериализации вашего объекта будет работать нормально.Фактически, часть внутренней обработки для генерации кода из .proto опирается на эту двойственность.
Если вы хотите явных xml маркеров в вашем сгенерированном коде (т.е.[XmlType(...)
] и т. Д.), Просто используйте параметр командной строки p:xml
, который (если вы используете инструменты IDE) также можно достичь с помощью ;xml
в «Пространстве имен пользовательских инструментов» (это действительно не так)Это очевидно, но это одно из немногих мест, где я мог бы принять дополнительные данные):
По сути, все, что вводится в «Пространстве имен пользовательских инструментов», предполагается (через protobuf-net) быть списком точек с запятой , начинающимся с требуемого пространства имен , за которым следуют параметры для генератора;следовательно, ;xml
использует пространство имен по умолчанию , затем добавляет параметр "xml", так же, как и p:xml
в командной строке.