![](/img/trans.png)
[英]Serialize an Object to XML: IList<CustomObject> Property Causes Exception
[英]Serialize to XML an object that contains IList
所以我有一个叫做FormType的对象。 它包含一些字符串,布尔值等。
但是FormType也包含以下内容:
private IList<FormTypeVersion> _versions = new List<FormTypeVersion>();
public virtual IList<FormTypeVersion> Versions
{
get { return _versions; }
set { _versions = value; }
}
这就是为什么我收到此错误的原因:
{"Cannot serialize member 'Domain.FormType.Versions' of type 'System.Collections.Generic.IList`1
另外-FormTypeVersion还包含一些ILists。
如何解决此错误,它发生在以下行:
var xm = new XmlSerializer(typeof(T));
XmlSerializer
无法反序列化接口(除非您想自己在FormType对象上实现IXmlSerializable)。 这就是为什么您看到该异常。
如果将IList更改为List,则它应如以下示例所示工作:
[Serializable]
public class FormType
{
private List<FormTypeVersion> _versions = new List<FormTypeVersion>();
public virtual List<FormTypeVersion> Versions
{
get { return _versions; }
set { _versions = value; }
}
}
如果您不愿意将类型从IList更改为List,那么最干净的方法是实现IXmlSerializable
。 还有其他使用抽象类型,反射和类似类型的解决方案,但我不会称之为干净。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.