[DataMember]
public int? NumberOfPages; //////////// Is this supported????
[DataMember]
public bool? Color; //////////// Is this supported????
[DataMember]
public int? BulkQuantity;
[DataMember]
Respuesta
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.
Sí, por favor ver Types Supported by the Data Contract Serializer:
tipos anulables son totalmente compatibles con el serializador contrato de datos.
Por lo general, funciona, pero puede tener problemas si la clase que contiene el miembro anulable es genérica. Alguien también ha encontró con el mismo problema que yo: http://discoveringdotnet.alexeyev.org/2009/06/wcf-nullable-values-are-not-working-in.html
Acabo de pasar la mañana golpeando mi cabeza contra esta limitación ¿Alguna idea sobre una solución alternativa? – batwad
@Kahoon y Batwad:
Hemos resuelto este problema mediante el uso del tipo nullable<>
o ?
en dos pasos:
En la clase que contiene el campo genérico, definir el campo de la siguiente manera:
nullable<GenType> MyField {get; set;}
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 utilizarBaseClass<DateTime?>
, creo.
Después de esto, la serialización de valores nulos genéricos funcionó para nosotros.
- 1. Datos de WCF DataContract ¿Orden del miembro?
- 2. DataContract para enumeraciones en WCF
- 3. WCF DataContract frente a la interfaz de DataContract
- 4. WCF DataContract - órgano de marcado isRequired = false
- 5. WCF DataContract con propiedades de solo lectura
- 6. DataContract y tipo de retorno dinámico WCF
- 7. WCF DataContract, algunos campos no deserializar
- 8. WCF DataContract vs serializar la clase
- 9. ¿Wcf basicHttpBinding admite PerSession?
- 10. WCF DataContract Excluir DataMembers de Ser serializados en clases derivadas
- 11. Constructor en WCF DataContract no reflejado en Cliente
- 12. cómo marcar una interfaz como DataContract en WCF
- 13. DataContractSerializer: cómo serializar clases/miembros sin atributos DataContract/DataMember
- 14. Cómo serializar/deserializar un C# WCF DataContract a/desde XML
- 15. WCF DataContract serialización de propiedades de solo lectura?
- 16. Son los atributos de DataContract necesarios para WCF
- 17. WCF - Crear instancias de un objeto en DataContract constructor
- 18. ¿Cuál es el punto de un DataContract en WCF?
- 19. Persista un DataContract como XML en una base de datos
- 20. Agregar un DataMember a un DataContract existente en WCF
- 21. ¿Alguien ha creado una herramienta de prueba DataContract?
- 22. DataContract vs Message Contrato
- 23. Contrato de datos WCF y datos de entidad de referencia?
- 24. Generar DataContract de XSD
- 25. Serializar datos de miembros privados
- 26. Servicios de datos de WCF: cómo evitar los miembros de __metadata
- 27. Serializable y DataContract (¿no frente?)
- 28. ¿Qué tipos de datos de C# pueden ser tipos anulables?
- 29. DataContract frente a XmlType
- 30. Valores anulables de datos no actualizados en Silverlight XAML
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
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. –
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