Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Web Service. minOccurs = 1 and nillable = false


Автор: priest08 5.8.2011, 13:05
Это вообще возможно? Для ссылочных типов (string) minOccurs автоматом проставляется 0; для int'а скажем будет minOccurs=1.
Если я устанавливаю IsNullable=true в атрибуте параметра типа string, то minOccurs=1, но сразу же появляется nillable = true.
Надо, чтобы для параметра типа string скажем в wsdl файлике, сгенерированном автоматически, был атрибут minOccurs=1 и при это либо nillable = false, либо его вообще не было.
Ведь wsdl это описание службы. Почему я не могу сказать тому, кто будет ее использовать, что этот вот параметр должен! (minOccurs=1) быть. И сделать это в не зависимости от типа параметра.

Автор: jonie 5.8.2011, 13:37
Код

String is reference type, therefore it is always "nullable".

Element minOccurs="0" specifies, that it is reference type.

From the other side minOccirs="1" specifies, that it is value type.

Therefore, generally speaking, (minOccirs="0") is equal to (minOccurs="1" + nillable="true").

    ReplyReply
    QuoteQuote
©http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/98609933-b958-4228-a87e-d99c42116dc6
ну и wsdl.exe вам "не поменять".

Есть http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/a8937c3d-7894-4f93-a1c8-7db65b6c5067 что можно использовать свои строки с перегрузкой операторов разных..

Еще есть [System.Xml.Serialization.XmlElementAttribute(IsNullable = true)] но для строк он мб не прокатит - пробуйте

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)