Я пытаюсь использовать XMLSerializer с классом активной записи замка, который выглядит следующим образом:
[ActiveRecord("Model")]
public class DataModel : ActiveRecordBase
{
private IList<Document> documents;
[XmlArray("Documents")]
public virtual IList<Document> Documents
{
get { return documents; }
set
{
documents = value;
}
}
}
Однако XMLSerializer сталкивается с проблемами из-за интерфейса IList. (Вызывает исключение: Невозможно сериализовать элемент DataModel.Documents типа System.Collections.Generic.IList`1 ....)
В другом месте я читал, что это ограничение XMLSerializer, и рекомендуется вместо этого объявить его как List<T>
интерфейс.
Поэтому я попытался изменить IList<Document>
на List<Document>
. Это приводит к тому, что ActiveRecord вызывает исключение: Тип свойства DataModel.Documents должен быть интерфейсом (IList, ISet, IDictionary или их общие счетные части). Вы не можете использовать ArrayList или List в качестве типа свойства.
Итак, возникает вопрос: как использовать XMLSerializer с Castle ActiveRecord, содержащим член IList?