значение enum не передается в запросе мыла - PullRequest
5 голосов
/ 12 мая 2011

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

Вот описание перечисления в файле wsdl:

<xs:simpleType name="photoIdType">
    <xs:restriction base="xs:string">
       <xs:enumeration value="DRV"/>
       <!-- drivers license -->
       <xs:enumeration value="PAS"/>
       <!-- passport -->
       <xs:enumeration value="STA"/>
       <!-- state ID -->
       <xs:enumeration value="GOV"/>
       <!-- government id -->
       <xs:enumeration value="ALN"/>
       <!-- alien id -->
    </xs:restriction>
</xs:simpleType>

Когда мне нужно дать значениедля этой переменной это мой путь:

    switch (xRootNode.Element(TagsXML.MG_T_SENDER_PHOTO_ID_TYPE).Value)
     {
     case "ALN":
         sendRequest.senderPhotoIdType = photoIdType.ALN;
         break;
     case "DRV":
         sendRequest.senderPhotoIdType = photoIdType.DRV;
         break;
     case "GOV":
         sendRequest.senderPhotoIdType = photoIdType.GOV;
         break;
     case "PAS":
         sendRequest.senderPhotoIdType = photoIdType.PAS;
         break;
     case "STA":
         sendRequest.senderPhotoIdType = photoIdType.STA;
         break;
   }

Непосредственно перед вызовом метода webservice я проверяю значение моего enum.Значение здесь и в порядке.

Но когда я проверяю с помощью Fiddler (анализатор http-пакетов) запрос Soap, отправляемый веб-службе, узел photoIdType не находится!

Знаете ли вы, что этоизвестная проблема из Visual Studio?Знаете ли вы, почему значение enum не отправляется?

Я могу дать больше информации, если вам это нужно.

1 Ответ

9 голосов
/ 01 июля 2011

Я просто столкнулся с той же проблемой и, наконец, нашел ответ. Если вы посмотрите на сгенерированное определение sendRequest, вы найдете senderPhotoIdType<em>Specified</em>, что является булом. Когда вы устанавливаете значение для senderPhotoIdType, вам нужно установить senderPhotoIdTypeSpecified в true для значения, которое будет сериализовано и передано.

(отследил ответ в этой древней теме http://social.msdn.microsoft.com/forums/en-US/netfxremoting/thread/616f67f8-bf11-46e3-b705-41940dcafab6)

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