Xml serialization – Hide null values

You can create a function with the pattern ShouldSerialize{PropertyName} which tells the XmlSerializer if it should serialize the member or not.

For example, if your class property is called MyNullableInt you could have

public bool ShouldSerializeMyNullableInt() 
  return MyNullableInt.HasValue;

Here is a full sample

public class Person
  public string Name {get;set;}
  public int? Age {get;set;}
  public bool ShouldSerializeAge()
    return Age.HasValue;

Serialized with the following code

Person thePerson = new Person(){Name="Chris"};
XmlSerializer xs = new XmlSerializer(typeof(Person));
StringWriter sw = new StringWriter();
xs.Serialize(sw, thePerson);

Results in the followng XML – Notice there is no Age

<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Leave a Comment