加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – GetObjectData()方法在实现ISerializable时永远不会被打

发布时间:2020-12-15 06:19:35 所属栏目:百科 来源:网络整理
导读:XmlSerializer从不在我的ISerializable上调用GetObjcetData().什么时候调用GetObjectData()?谢谢! class Program{ static void Main(string[] args) { var thing = new Thing { Name = "Dude",Id = 1 }; var xmlSerializer = new XmlSerializer(typeof(Thi
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读