正如您所指出的,唯一的方法是实现IXmlSerializable接口。
public class ClassB : IXmlSerializable
{
private string _value;
public string Value {
get { return _value; }
set { _value = value; }
}
public override string ToString()
{
return _value;
}
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(System.Xml.XmlReader reader)
{
_value = reader.ReadString();
}
public void WriteXml(System.Xml.XmlWriter writer)
{
writer.WriteString(_value);
}
#endregion
}
正在序列化以下实例。。。
ClassB classB = new ClassB() { Value = "this class's value" };
将返回以下xml:
<?xml version="1.0" encoding="utf-16"?><ClassB>this class's value</ClassB>
您可能需要进行一些验证,以便对xml标记等进行编码。