c# – 如何序列化System.Net.IPAddress属性中包含的类?

我想序列化我的具有属性IPAddress的类.
public class Person
{
    public IPAddress MasterIP { get; set; }
    public Person(){}
}


public void SerializeMyClass()
{
    Person obj=new Person();
    XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
    xmlSerializer.Serialize(obj);
}

但是我收到了错误

“can not serialize IPaddress because it has no empty constructor”

解决方法

您不能 – XmlSerializer只能序列化具有公共无参数构造函数的公共类的公共属性/字段.您可以查看其他序列化程序类型(如BinaryFormatter)或破解您的类,如:
public class Person {
  [XmlIgnore]
  public IPAddress MasterIP { get; set; }
  [XmlElement("MasterIP")]
  public string MasterIPForXml {
    get { return MasterIP.ToString(); }
    set { MasterIP = string.IsNullOrEmpty(value) ? null :
      IPAddress.Parse(value); 
    }
  }
}

相关文章

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