Могу ли я использовать DataContract и Serializable вместе?
Я работаю над сервисом WCF. Мой весь класс уже сериализуется с использованием атрибута [Serializable], но из-за проблемы с именованием свойств "k__BackingField" я использовал атрибут DataContract и DataMember.
поэтому Могу ли я использовать оба атрибута вместе следующим образом:
[Serializable]
[DataContract]
public class User
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int UserID { get; set; }
}
Правильно ли это?
У меня также есть аналогичное решение.
Автоматическая десериализация свойств JSON
Serializable и DataContract (не против?)
Ответы
Ответ 1
Я нашел статью на MSDN в соответствии с этим, мы можем использовать оба атрибута DataContract и Serializable вместе.
С помощью [Serializable] все поля становятся частью контракта данных (если они не отмечены [NonSerialized]). С помощью [DataContract] включены только элементы, помеченные [DataMember]. Обратите внимание, что если тип имеет оба атрибута [DataContract] и [Serializable], он будет использовать сопоставление [DataContract]
http://msdn.microsoft.com/en-us/magazine/cc163569.aspx
Ответ 2
Если проблема заключается в том, что вы не используете
[XmlElement(ElementName = "Name")]
public string Name { get; set; }