Encuentro que los atributos [DataContract]
y [DataMember]
son un poco desordenados y preferiría hacer esto con el código en un método de configuración o algo así. es posible?Establecer DataContract y DataMember sin todos los atributos
Respuesta
No tiene que usar estos atributos en absoluto. DataContractSerializer
serializará todas las propiedades públicas con getter y setter, pero en el caso de serializar entidades con propiedades de navegación, finalizará fácilmente con una excepción debido a la "referencia cíclica".
Para evitar esa excepción debe utilizar ya sea [DataContract(IsReference = true)]
en su clase de entidad con DataMember
en cada propiedad que desea serilize o IgnoreDataMember
en cada propiedad que no desea serializar.
La última y más compleja opción es evitar los atributos por completo y las clases personalizadas que implementan IDataContractSurrogate
para controlar la serialización fuera del tipo.
También puede escribir su proceso de serialización completamente personalizado o utilizar serialización XML o serialización binaria con todos sus requisitos.
Pero agrego [DataContract] a mi clase y puedo devolverlo desde una operación WCF ... pero los contenidos están en blanco, entonces agrego [DataMember] a un par de propiedades y de repente esas (y solo aquellas) son devuelto en el resultado serializado. Entonces, ¿por qué no funciona el mío como dices donde de forma predeterminada se devuelven todas las propiedades? –
Por cierto, son propiedades públicas con {get; establecer;} –
Una vez que agrega el atributo 'DataContract' ** debe ** marcar las propiedades que desea serializar con el atributo' DataMember'. La serialización predeterminada que describí funciona solo si no usa el atributo 'DataContract'. –
No, el DataContractSerializer es un serializador opcional, debe indicarle lo que desea incluir.
Con otros serializadores necesita usar cosas como NonSerializedAttribute o XmlIgnoreAttribute para decirle al serializador que deje las cosas en paz.
- 1. DataContract y DataMember atributos - cómo afectan tipo
- 2. DataContractSerializer: cómo serializar clases/miembros sin atributos DataContract/DataMember
- 3. Configure JSON.NET para ignorar los atributos de DataContract/DataMember
- 4. DataContract, valor predeterminado de DataMember
- 5. Obtener el nombre de todos los DataMembers en un DataContract
- 6. Agregar un DataMember a un DataContract existente en WCF
- 7. Adición de atributos [DataMember] [DataContract] en la plantilla POCO de Entity Framework
- 8. ¿Establecer el valor predeterminado en un DataContract?
- 9. serialización XML de DataContract y atributos XML
- 10. DataContract y herencia?
- 11. Eliminar todos los atributos
- 12. Son los atributos de DataContract necesarios para WCF
- 13. Ruby on Rails 3 - a_json sin incluir todos los atributos
- 14. ¿Puedo usar DataContract y Serializable juntos?
- 15. * todos * los atributos CSS con jQuery
- 16. WCF DataContract frente a la interfaz de DataContract
- 17. jQuery obtener todos los atributos HTML
- 18. WCF DataMember DateTime Serializing Format
- 19. Cómo agrego un atributo XML usando DataContract
- 20. WCF DataContract, algunos campos no deserializar
- 21. Serialization DataMember (name) override issue
- 22. JavaScript - crear elemento y establecer atributos
- 23. Generar DataContract de XSD
- 24. WCF Datacontract: ¿Admite miembros de datos anulables?
- 25. Cómo actualizar los atributos sin validación
- 26. Serializable y DataContract (¿no frente?)
- 27. WCF DataContract vs serializar la clase
- 28. Función de PHP para enumerar todos los atributos de los atributos
- 29. Problema con deserializar JSON en DataMember "__type"
- 30. LDAP - ¿Recuperar una lista de todos los atributos/valores?
¿Qué tiene de complicado una decoración inicial? –
No estoy seguro de cómo responder. Simplemente desordenado. –
Tengo muchas entidades y, en general, quiero extenderlas todas, incluidas todas las propiedades, por lo que resulta incómodo repetir un atributo cientos de veces. Espero descubrir el enfoque de "exclusión voluntaria" con el que Ladislov me está ayudando a continuación. Prefiero adornar a los miembros que no quiero incluir. –