Reputation: 2503
I am working on WCF service. My all class are already serialize using [Serializable] attribute but due to "k__BackingField" Property Naming problem I used DataContract and DataMember attribute. so Can i use both attribute together like following:
[Serializable]
[DataContract]
public class User
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int UserID { get; set; }
}
is this correct?
I also got similar solution here. C# automatic property deserialization of JSON
Serializable and DataContract (not versus?)
Upvotes: 28
Views: 19846
Reputation: 2503
I found an article on MSDN according to this we can use both attribute DataContract and Serializable together.
With [Serializable], all fields become part of the data contract (unless they are marked with [NonSerialized]). With [DataContract], only members marked with [DataMember] are included. Note that if a type has both [DataContract] and [Serializable] attributes on it, it will use the [DataContract] mapping
http://msdn.microsoft.com/en-us/magazine/cc163569.aspx
Upvotes: 44
Reputation: 2687
if the problem is in naming why don't you use
[XmlElement(ElementName = "Name")]
public string Name { get; set; }
Upvotes: 1