我正在尝试将对象(类)序列化为Xml,因为我需要将它发送到JDE Business Function。 当我需要像这样代表一个arraylist时,我遇到了问题:
<params>
<param name='szGroup'>val1</param>
<param name='szOWPassword'>val2</param>
...
</params>
在我的课上我创造了这个:
...
[XmlArray("params")]
[XmlArrayItem("param")]
public List<Param> Param {get; set;}
...
public class Param
{
[XmlAttribute("name")]
public string Name { get; set; }
}
但我明白了:
<params>
<param name="szGroup" />
<param name="szOWPassword" />...
任何人都可以帮我这个吗?
答案 0 :(得分:4)
使用XmlText
属性:
public class Param
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlText]
public string Value { get; set; }
}
答案 1 :(得分:0)
根据您需要序列化的方式,在您的情况下继承XmlTextWriter
以更好地控制序列化可能是明智的。如果你必须拥有完整的结尾元素,这是实现这一目标的最简单方法之一:
public class MyXmlTextWriter : XmlTextWriter
{
public MyXmlTextWriter(TextWriter writer) : base(writer) { }
public override void WriteEndElement()
{
base.WriteFullEndElement();
}
// Override any additional XML serialization methods.
}
然后你只需要实例化MyXmlTextWriter
并使用它来序列化你的XML。