IList의
[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 '를 직렬화 할 수 없습니다 예외를 발생시킵니다) 이 문제를 해결하려면 대신 List<T>
인터페이스로 선언하는 것이 좋습니다.
따라서 IList<Document>
을 List<Document>
으로 변경해 보았습니다. 이로 인해 ActiveRecord가 예외를 발생시킵니다. 속성의 유형 DataModel.Documents는 인터페이스 (IList, ISet, IDictionary 또는 일반 카운터 파트) 여야합니다. ArrayList 또는 List를 속성 유형으로 사용할 수 없습니다.
그래서 질문은 다음과 같습니다. IList 멤버가 포함 된 성 ActiveRecord와 함께 XMLSerializer를 어떻게 사용합니까?
감사합니다. 작동합니다. 인터페이스가 추가 속성으로 인해 약간 오염 되긴하지만 Microsoft가 IList 직렬화 문제에 관해서 어떤 작업을하지 않는 한 실제로 많은 것을 보지 못합니다. –
이 글은 버그는 아니지만 기능이며,이를 해결하기위한 방법은 데이터 전송 객체 (또는 DTO)를 사용하는 것입니다. – Vamos