2010-03-11 14 views
24
[DataMember] 
    public int? NumberOfPages; //////////// Is this supported???? 
    [DataMember] 
    public bool? Color;   //////////// Is this supported???? 
    [DataMember] 
    public int? BulkQuantity; 
    [DataMember] 

Respuesta

31

Sí, por supuesto!

No debe tener problemas para crear miembros con datos anulables, se tratarán en el WSDL/XSD resultante como miembros "xs: nillable = true". No hay problema.

+0

Pero cuando lo hago y lo pruebo usando el cliente de prueba WCF, dice que "esta operación no es compatible con el cliente de prueba WCF". – Pinu

+0

tal vez es solo el cliente de prueba WCF que no puede manejarlo! Intenta escribir tu pequeño cliente para llamar a una función y recuperar esa información. –

+0

marc_s tiene razón; la página web le permite probar un servicio desde dentro de un navegador solo admite tipos de datos primitivos como parámetros. Esto no daña la funcionalidad del servicio. Si no desea escribir su propia herramienta, intente MS WCF Test Client (http://msdn.microsoft.com/en-us/library/bb552364.aspx) – GreenIcicle

4

@Kahoon y Batwad:

Hemos resuelto este problema mediante el uso del tipo nullable<> o ? en dos pasos:

  1. En la clase que contiene el campo genérico, definir el campo de la siguiente manera:

    nullable<GenType> MyField {get; set;} 
    
  2. En el contrato de datos que utilizan En esta clase base, puede definir qué elementos conocen el serializador/deserializador usando algunas etiquetas similares a anotaciones. Aquí, definimos por ejemplo:

    [Serializable] 
    [DataContract] 
    [KnownType(typeof(BaseClass<nullable<DateTime>>))] 
    

    En lugar de BaseClass<nullable<DateTime>> puede utilizar BaseClass<DateTime?>, creo.

Después de esto, la serialización de valores nulos genéricos funcionó para nosotros.

Cuestiones relacionadas