如何使用默认属性将属性序列化为元素

时间:2014-02-11 11:08:46

标签: c# xml-serialization

我需要使用xml属性将此类序列化,该属性需要作为一个元素,其属性名称为默认属性的值。

class RequestDto
{
    public string ZipCode {get;set;}
} 

as 

<RequestDto>
    <Parameter name="zipcode"> </Parameter>
</RequestDto>

1 个答案:

答案 0 :(得分:3)

您无法直接从该对象模型的形状通过XmlSerializer执行此操作;基本上,XmlSerializer假定您的模型和xml 或多或少相同。实施IXmlSerializable坦率地说不值得。我建议使用XDocument来序列化它:

string zip = "abc";
var el = new XElement("RequestDto",
    new XElement("Parameter",
        new XAttribute("name", "zipcode"),
        zip
    )
);

给出(通过.ToString()):

<RequestDto>
  <Parameter name="zipcode">abc</Parameter>
</RequestDto>