Вопрос

У меня есть большой набор XML-файлов собственной схемы - XML-файлы определяют двоичный протокол связи (структуру сообщения).

Я бы хотел использовать технологию буферизации протоколов Google.

Я использую существующий код для загрузки XML-файлов в объектную модель (в память).Я бы хотел сгенерировать файл .proto на основе этой объектной модели.

итак, в основном то, что я ищу, - это код / библиотека (на C # / .NET), которая представляет формат файла .proto в виде объектной модели и может сохранять эту объектную модель в файл .proto.

Я взглянул на dotnet-protobufs Джона Скита, думаю, я понимаю, что он делает (генерирует код c # на основе файлов .proto)

Однако я не выяснил, могу ли я использовать это для своего проекта (вероятно, там есть объектная модель формата .proto, но, вероятно, только код, который может анализировать этот формат, а не записывать его)

Это было полезно?

Решение

protobuf-net (моя версия буферов протокола в .NET) имеет примитивный поддерживается генерация прототипов файлов, но заполнить пробелы было бы несложно.Сначала я сосредоточился на ядре движка, затем на создании C # из proto.Написание xslt для генерации прототипа на основе объектной модели не сильно отличалось бы.Однако это займет несколько дней...(На данный момент у меня ограниченное время).

Если это будет полезно, пожалуйста, дайте мне знать.

Для информации, движок protobuf-net совместим с большинством XmlSerializer классы (и DataContractSerializer, и недавно BinaryFormatter) - итак, если ваш код в данный момент работает как xml, мы, вероятно, сможем заставить его работать в protobuf-net.Никаких гарантий, конечно...

Другие советы

Мой код может сериализовываться и десериализовываться только в двоичный файл и текст.Однако я считаю, что Проект Марка Гравелла обладает возможностями XML.На самом деле, я полагаю, что он генерирует код на C #, основанный на загрузке двоичной версии файла .proto (который сам кодируется как protobuf), записи его в формате XML, а затем применении к нему XSLT...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top