2011-05-12 7 views
5

Tengo un servicio web al que se hace referencia en mi proyecto por referencia.valor enum no transmitido en la solicitud de jabón

Esta es la descripción de una enumeración en el archivo 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> 

Cuando tengo que dar un valor de esta variable, esta es mi manera:

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; 
    } 

Justo antes de que llame el método de servicio web, compruebo el valor de mi enumeración. El valor está aquí y bien.

Pero cuando consulto Fiddler (http packets analyzer), la solicitud de Soap envía a webservice, ¡el nodo photoIdType no está activado!

¿Sabes si es un problema conocido de Visual Studio? ¿Sabes por qué no se envía el valor enum?

Puedo proporcionar más información si la necesita.

Respuesta

9

Acabo de encontrarme con el mismo problema y finalmente encontré la respuesta. Si observa la definición generada sendRequest, encontrará un senderPhotoIdTypeSpecified que es un bool. Cuando establece un valor para senderPhotoIdType, debe establecer senderPhotoIdTypeSpecified en true para el valor que se serializará y se pasará.

(que se registra la respuesta en este antiguo hilo http://social.msdn.microsoft.com/forums/en-US/netfxremoting/thread/616f67f8-bf11-46e3-b705-41940dcafab6)

+0

Gracias, sólo me salvó un montón de tiempo y el dolor! – GWTNewbie

+0

¡Ningún problema! Encantado de ayudar. –

+1

Gracias por la respuesta ... me ahorró tiempo. –

Cuestiones relacionadas