回答我的问题..
我选择了这一点:
public class CustomXMLKeyValueList : IXmlSerializable
{
public List<CustomXMLKeyValueElement> Elements { get; set; }
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
//ToDo-experiment with this..
throw new NotImplementedException("This document can not be deserialized.");
}
public void WriteXml(XmlWriter writer)
{
foreach (var element in this.Elements)
{
element.WriteXml(writer);
}
}
}
public class CustomXMLKeyValueElement : IXmlSerializable
{
public string Key { get; set; }
public string Value { get; set; }
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
//ToDo-experiment with this..
throw new NotImplementedException("This document can not be deserialized.");
}
public void WriteXml(XmlWriter writer)
{
writer.WriteStartElement(this.Key);
writer.WriteString(this.Value);
writer.WriteEndElement();
}
}
public class KeyValueCustomXMLSerialization_Fixture
{
public void Test()
{
var kvl = new CustomXMLKeyValueList() { Elements = new List<CustomXMLKeyValueElement>() };
kvl.Elements.Add(new CustomXMLKeyValueElement() { Key = "key1", Value = "value1" });
kvl.Elements.Add(new CustomXMLKeyValueElement() { Key = "key2", Value = "value2" });
kvl.Elements.Add(new CustomXMLKeyValueElement() { Key = "key3", Value = "value3" });
var xml = Serializer.SerializeToXMLString(kvl, true, true);
}
}
它'不是解决方案的最好的,但在它的结束,在XML VAR包含以下美丽的字符串:
<CustomXMLKeyValueList>
<key1>value1</key1>
<key2>value2</key2>
<key3>value3</key3>
</CustomXMLKeyValueList>
的“串行”是一个神奇的类,它像this,同时(因为“真,真“)ommiting命名空间和XML声明..
http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx - 试试这个 – 2012-03-15 09:34:23
感谢..我编辑的问题以显示我是如何做到的。 – 2012-03-15 10:36:08
“Serializer.SerializeToXMLString” - 是.NET的这一部分? – walkingTarget 2012-03-15 14:29:02