Я использую wsdl.exe для преобразования файла WSDL и файла Types.xsd в файл C #. В файле wsdl указываются необязательные переменные (minOccurs="0" maxOccurs="1"
), и сгенерированный тип .NET обрабатывает это, создавая два поля - одно для переменной (например, status
) и одно, чтобы сообщить, указано ли оно (statusSpecified
).
Можно ли использовать инструмент wsdl
для создания только одного поля Nullable
(т. Е. Если оно не равно нулю, оно указано)? (Если это поможет, я думаю, что я могу изменить файл wsdl, чтобы иметь nillable="true"
элементов.)
Есть ли другой, лучший инструмент, который будет генерировать .NET-типы из WSDL? Я использую .NET 4, поэтому было бы полезно, если бы сгенерированные типы пользовались такими функциями, как типы Nullable.
ПРИМЕЧАНИЕ. Я только что понял, что использую инструмент wsdl из .NET 2, и что более новые проекты должны использовать WCF для этого. Какие-нибудь указатели на способ WCF получить то, что я хочу?
Что касается WCF, эта статья указала мне в направлении использования инструмента svcutil
(который уже был в моем PATH, поэтому я мог просто запустить его из командной строки в папке с wsdl и xsd файлы вроде так: svcutil *.wsdl *.xsd /language:C#
). К сожалению, svcutil, похоже, не работает лучше с использованием типов Nullable вместо xSpecified
переменных.