change how XmlSerializer serializes empty elements

c#, xmlserializer

Solution

After trying different things I accidentally happened upon the solution. I set the `XmlElementAttribute.IsNullable` to true like the previous answer suggested.

[System.Xml.Serialization.XmlElementAttribute(ElementName = "Confirm", IsNullable=true)]
    public ConfirmType Confirm
    {
        get
        {
            return this.confirmField;
        }
        set
        {
            this.confirmField = value;
            this.RaisePropertyChanged("Confirm");
        }
    }

Then when setting the confirm type in the code I used the default constructor instead of setting Confirm to null.

retval.ConfirmBODDataArea.Confirm = new ConfirmType();

This serialized as `<star:Confirm/>`

Problem

I am using the XmlSerializer. It serializes the object just fine but the client requires required empty elements to be in this format `<star:Confirm/>`. The serializer instead serializes the empty elements to `<star:Confirm></star:Confirm>` is there a way to change it to serialize the way the client requires.

Original source