2011-03-23 25 views
25

Estoy trabajando en el servicio WCF. Mi clase completa ya está serializada usando el atributo [Serializable] pero debido al problema de nomenclatura de propiedades "k__BackingField" utilicé el atributo DataContract y DataMember. así puedo usar tanto juntos como atributo siguiente:¿Puedo usar DataContract y Serializable juntos?

[Serializable] 
[DataContract] 
public class User 
{ 

    [DataMember] 
    public string Name { get; set; } 

    [DataMember] 
    public int UserID { get; set; } 
} 

es esto correcto?

También obtuve una solución similar aquí. C# automatic property deserialization of JSON

Serializable and DataContract (not versus?)

Respuesta

36

he encontrado un artículo en MSDN acuerdo con esto podemos utilizar tanto atribuyen DataContract y Serializable juntos.

Con [Serializable], todos los campos pasan a formar parte del contrato de datos (a menos que estén marcados con [NonSerialized]). Con [DataContract], solo se incluyen los miembros marcados con [DataMember]. Tenga en cuenta que si un tipo tiene tanto [DataContract] y [Serializable] atributos en él, se utilizará el [DataContract] mapear

http://msdn.microsoft.com/en-us/magazine/cc163569.aspx

1

si el problema es en el nombramiento de por qué no usa usted

[XmlElement(ElementName = "Name")] 
public string Name { get; set; } 
Cuestiones relacionadas