【发布时间】:2009-04-15 18:34:33
【问题描述】:
我正在尝试将 XMLSerializer 与如下所示的城堡活动记录类一起使用:
[ActiveRecord("Model")]
public class DataModel : ActiveRecordBase
{
private IList<Document> documents;
[XmlArray("Documents")]
public virtual IList<Document> Documents
{
get { return documents; }
set
{
documents = value;
}
}
}
但是,由于 IList 接口,XMLSerializer 遇到了麻烦。 (引发异常:无法序列化类型为“System.Collections.Generic.IList`1...”的成员“DataModel.Documents”......)
我在其他地方读到这是 XMLSerializer 的一个限制,建议的解决方法是将其声明为 List<T> 接口。
因此我尝试将IList<Document> 更改为List<Document>。
这会导致 ActiveRecord 引发异常:
属性 DataModel.Documents 的类型必须是一个接口(IList、ISet、IDictionary 或它们的通用计数器部分)。您不能使用 ArrayList 或 List 作为属性类型。
所以,问题是:如何将 XMLSerializer 与包含 IList 成员的 Castle ActiveRecord 一起使用?
【问题讨论】:
标签: .net xml-serialization castle-activerecord generic-list