и спасибо за чтение.
Я внедряю службу WCF на основе предварительно определенной спецификации (HR-XML 3.0). Поэтому я начинаю со схемы и возвращаюсь к коду. Существует ряд крупных документов Schema (которые импортируют еще больше документов Schema), связанных с моей реализацией, предоставленных этой спецификацией.
Я могу сгенерировать код, используя xsd.exe, указав в качестве аргументов "основной" и "поддерживающий" файлы xsd. Но есть несколько вопросов, и мне интересно, если это правильный подход.
- существует несколько сотен классов - размер файла кода составляет полмегабайта
- дубликаты классов (например, Type, Type1 - которые оба представляют один и тот же тип)
- существуют классы, объявленные как унаследованные от базового класса, но этот базовый класс не создан / не определен
Я понимаю, что существуют ограничения для типов схем, поддерживаемых svcutil.exe / xsd.exe при нацеливании на DataContractSerializer и даже XmlSerializer. У меня вопрос двоякий:
- Являются ли проблемы с генерацией кода достаточно распространенными при работе с большими модульными xsd-файлами? Кто-нибудь имел успех в создании контрактов данных из схемы OAGIS или HR-XML?
- Учитывая вышеперечисленные проблемы, существуют ли лучшие подходы к этой задаче, позволяющие избежать генерации кода и работы с конкретными объектами? Лучше ли читать и составлять сообщения SOAP напрямую, но при этом использовать преимущества остальной части инфраструктуры WCF? Я понимаю, что теряю удобство работы с объектами .NET и сериализацию, предоставляемую фреймворком; Учитывая эти потери, будет ли по-прежнему выгодно основывать мой Сервис на WCF? Есть ли какая-то "золотая середина" между работой с типами .NET и чистым XML?
Большое спасибо!
- Саша Бородин
DFWHC.org