Удаление необязательного элемента типа значения из сообщения SOAP, отправленного через прокси WCF - PullRequest
1 голос
/ 15 декабря 2008

У нас есть wsdl, указывающий элемент datetime. Обнуляем в том смысле, что minOccurs = 0. Однако использование svcutil для генерации прокси-класса не дает нам свойство Date. Nullable .net, так как лучше всего заставить прокси-класс сериализовать сообщение в сообщение SOAP, которое не содержит элемент datetime?

1 Ответ

2 голосов
/ 16 декабря 2008

svcutil обрабатывает случай, когда элемент помечается как minOccurs = "0", генерируя дополнительное логическое свойство с именем "xxxSpecified" (где "xxx" - это имя элемента). Чтобы исключить элемент из сообщения SOAP, необходимо установить для этого свойства значение false. Чтобы включить элемент, необходимо установить для этого свойства значение true.

Таким образом, если бы элемент назывался "Fred", svcutil дал бы вам два свойства в вашем прокси-классе:

DateTime Фред

и

bool FredSpecified

Если вы хотите включить Fred в сообщение SOAP, вам следует установить для свойства Fred значение даты и времени, которое вы хотите отправить, и задать для FredSpecified значение true.

Если вы не хотите включать Fred в сообщение SOAP, вам следует установить для FredSpecified значение false (и не имеет значения, какое значение содержится в свойстве Fred).

svcutil выдаст вам правильные обнуляемые типы, только если ваш WSDL использует стиль нулей nillable = "true", а не стиль minOccurs = "0".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...