C#学习教程:在实现ISerializable时,永远不会遇到GetObjectData()方法分享


在实现ISerializable时,永远不会遇到GetObjectData()方法

XmlSerializer从不在我的ISerializable上调用GetObjcetData() 。 何时调用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序列化,请改用IXmlSerializable

上述就是C#学习教程:在实现ISerializable时,永远不会遇到GetObjectData()方法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031796.html

发表评论

邮箱地址不会被公开。 必填项已用*标注