开发者

change how XmlSerializer serializes empty elements

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 开发者_如何学Goit to serialize the way the client requires.


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/>


You can try setting the XmlElementAttribute.IsNullable property to true. However, bear in mind xsi:nil="true" attribute will be output as a consequence.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜