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

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...