Могу ли я использовать 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
2 ответа:
Я нашел статью о MSDN в соответствии с этим мы можем использовать как атрибут DataContract, так и сериализуемый вместе.
С [Serializable] все поля становятся частью контракта данных (если они не помечены [Несериализованными]). В [DataContract] включаются только члены, помеченные [DataMember]. Обратите внимание, что если тип имеет атрибуты [DataContract] и [Serializable], он будет использовать [DataContract] отображение