c# - Xml serialization - Hide tags with 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"

No comments:

Post a Comment