2015-12-16 4 views
2

У меня проблема с сериализацией нулевого значения. на самом деле я не хочу включать его вообще.Сериализация DataContract и NULL datamember

[DataContract] 
public class SearchItem{ 
    public SearchCriteria() 
    { 
     IsActive = true; 
     IsFiltered = true; 
    } 

    [DataMember(Order=01)] 
    public bool? IsActive { get; set; } 
    [DataMember(Order=02)] 
    public bool IsPriceFiltered { get; set; } 

} 

и когда я хочу, чтобы как

создании экземпляра
new SearchCriteria(){ 
IsActive = null, 
} 

он все еще сериализации IsActive собственности.

любые предложения, как преодолеть эту проблему?

таких решений, как создание как enum или создание экземпляра с помощью других constructor НЕ варианты для меня.

+1

Какой у вас сериализатор? – dotctor

+0

Положите атрибут [DataIgrore] на свойство, которое вы не хотите сериализовать. –

+0

Это условно. OP хочет игнорировать, если свойство равно null! @GeorgeFindulov – dotctor

ответ

0

Вы можете использовать EmitDefaultValue.

[DataMember(Order=01, EmitDefaultValue=false)] 
public bool? IsActive { get; set; } 
+0

Я не думаю, что это работает в соответствии с моими потребностями, из-за того, что он создает атрибут 'xsi: nil =" true ". Я хочу, чтобы он был пустым. – aurimas

Смежные вопросы