XSD .net код gen + альтернативные методы сериализации - PullRequest
1 голос
/ 21 июля 2010

У меня есть время, чтобы определиться с направлением работы с библиотекой, которую я создаю.

У меня есть пакет XSD промышленного стандарта, из которого я генерирую объекты .net.Я использовал все XSD.exe, LinqtoXsd, xsd2code и даже OxmLibrary с разными результатами.Но, в конце концов, я могу генерировать классы .net, которые можно сериализовать / десериализовать в соответствии со стандартом.

Однако - API, вызываемый с помощью этого xml (api также является частью стандарта), требует, чтобы запросы также обрабатывались как XML, но с некоторым отклонением от базового XSD, а именно:

-присутствие или отсутствие тега диктует, что определенные поля должны быть «выбраны» или использованы другими способами (обновить, удалить, добавить и т. д.).

- одиночные типы значений в xsd могут повторяться в запросе API "select", чтобы указать эквивалент предложения where для этого поля.

Скорее всего, я собираюсь использовать одну из описанных выше структур генов кода для создания вторичного кода для объекта типа запроса в дополнение к основным объектам данных.

Итак, подходы, которые я рассматриваю для определения и сериализации объектов запроса, включают в себя:

  • использовать «ручные» методы сериализации, которые могут посмотреть на отдельный объект запроса и определить, какиеполя для включения / исключения, а также могут создавать повторяющиеся теги, если в запросе указано несколько значений.

  • изменить каждое поле для наследования от базового типа, который учитывает запросы и может выводить правильный xml для каждого элемента.

  • использовать методы расширения, чтобы у класса были дополнительные методы для каждого поля, которые можно вызывать для указания параметров запроса, и можно повторно использовать объекты данных для создания запросов.

  • использовать анонимные типы для указания подмножества полей и генерировать запрос XML из этого

В дополнение к этому, мне также нужно вычислитьо том, как взломать ранее упомянутый код gen fremeworks для решения, в каком бы направлении я ни шел.

Я не продумал все это до конца, но подумал, что я бы выполнил это на тот случай, если кто-то проделает аналогичную работу и получит некоторые рекомендации.

1 Ответ

0 голосов
/ 14 февраля 2011

LINQ to XSD ищет разработчиков. Было бы хорошо принести новые идеи и исправить ошибки. Я поддерживал это некоторое время, но я переключился на CityLizard Framework , который также имеет генератор "XSD to C #".

...