XmlSerializer
从不打电话GetObjcetData()
on my ISerializable
。什么时候GetObjectData()
叫?谢谢!
class Program
{
static void Main(string[] args)
{
var thing = new Thing { Name = "Dude", Id = 1 };
var xmlSerializer = new XmlSerializer(typeof(Thing));
var sw = new StringWriter();
xmlSerializer.Serialize(sw, foo);
var serializedXml = sw.ToString();
var sr = new StringReader(serializedXml);
var result = (Thing)xmlSerializer.Deserialize(sr);
}
}
public class Thing : ISerializable
{
public string Name { get; set; }
public int Id { get; set; }
public Thing() { }
public Thing(SerializationInfo info, StreamingContext context) { }
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
// Breakpoint placed on the following line never gets hit:
throw new NotImplementedException();
}
}
XmlSerializer 不调用 GetObjectData。二元和肥皂都可以。
如果您想管理 xml 序列化,请使用IXml可序列化 http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.aspx instead
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)