Могу ли я использовать 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; }
}

Правильно ли это?

Я также получил аналогичное решение здесь. C# автоматическая десериализация свойств JSON

Сериализуемый и DataContract (не против?)

2 25

2 ответа:

Я нашел статью о MSDN в соответствии с этим мы можем использовать как атрибут DataContract, так и сериализуемый вместе.

С [Serializable] все поля становятся частью контракта данных (если они не помечены [Несериализованными]). В [DataContract] включаются только члены, помеченные [DataMember]. Обратите внимание, что если тип имеет атрибуты [DataContract] и [Serializable], он будет использовать [DataContract] отображение

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

Если проблема заключается в именовании, почему бы вам не использовать

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