Хотя это работает и является довольно коротким решением, шаблон propertyNameSpecified
, на мой взгляд, имеет некоторые недостатки (загрязняет интерфейс вашего класса; зависит от имен свойств; вводит неявное поведение).
Если вам нужно реализовать только простое условие (например, не сериализовать значение по умолчанию), тогда атрибут DefaultValue
является лучшим выбором.
Дляпример:
public class PurchaseOrder
{
[DefaultValue("2002")]
public string Year;
}
Если значение Year имеет значение «2002», оно будет исключено из вывода XML.