我正在尝试序列化实现IList
接口的C#类。此类维护两个列表,例如list1
和list2
。我在list1上有一个枚举器,以便其他人可以使用此类的对象枚举list1
而不关心list2
。这是一个例子:
[System.Runtime.Serialization.DataContract]
public class TestClass : IList
{
[System.ComponentModel.Browsable(false)]
//[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Runtime.Serialization.DataMember(Name = "dndil1")]
public List<CustomVO> List1 { get; set; }
[System.ComponentModel.Browsable(false)]
//[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Runtime.Serialization.DataMember(Name = "dndil2")]
public List<CustomVO> List2 { get; set; }
public IEnumerator GetEnumerator()
{
return List1.GetEnumerator();
}
// Other methods from IList interface
}
问题在于,当我尝试将此类转换为json时,序列化程序忽略List2
并仅序列化List1
。然后我检查了GetEnumerator是否是这个问题的原因并发现它确实是。
我希望两个列表都被序列化。我不想删除枚举器。怎么解决这个问题?