Существует два подхода к сериализации с помощью сериализаторов .NET:
Белый список свойств:
Это рекомендуемый подход.Вы явно помечаете свой класс атрибутом DataContract
.При этом в вывод будут включены только свойства, помеченные атрибутом DataMember
.
Вместо того, чтобы создавать черный список свойств, которые вы не хотите сериализовать, лучше сделать белыйперечислите и отметьте все свойства, которые вы хотите сериализовать.Это более безопасно, поскольку требует, чтобы разработчик явно заявлял, что он хочет, чтобы свойство было сериализовано при введении нового свойства.
Черный список свойств:
Если вы действительно хотите сделать черный список, вы можете использовать атрибут IgnoreDataMember
, как указано другими.В этом случае вам не нужно (и не следует) отмечать свой класс атрибутом DataContract
.Вместо этого вы помечаете свойства, которые вы хотите исключить, с помощью IgnoreDataMember
.
Я надеюсь, что это поможет немного объяснить варианты и их преимущества / недостатки.
Редактировать: Расширенный мой ответ