¿Cómo serializar una clase que se incluye en la propiedad System.Net.IPAddress?

Quiero serializar mi clase con propiedad 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); } 

Pero estoy recibiendo error:

“no se puede serializar la dirección IP porque no tiene un constructor vacío”

No puede: XmlSerializer solo puede serializar propiedades / campos públicos de clases públicas que tienen constructores públicos sin parámetros. Puedes buscar otro tipo de serializador (como BinaryFormatter) o hackear tu clase como:

 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); } } }