我正在尝试将 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 一起使用?