使用接口序列化子集合

时间:2011-04-12 17:27:30

标签: c# serialization interface

我有一个像这样的界面

public interface IA{
    IEnumerable<IB> Items {get;set;}
}

public interface IB{
    int ID {get;set;}
}

如果我尝试序列化界面,我会收到错误

Cannot serialize interface

如果我创建了一个具体版本的界面,我无法创建该集合的具体版本。

public class classA:IA{
   public IEnumerable<B> Items {get;set;}  //this doesn't match the interface
}

但如果我这样做,我们仍然有序列化问题

public class classA:IA{
   public IEnumerable<IB> Items {get;set;}
}

3 个答案:

答案 0 :(得分:1)

您确定要接口吗?泛型可以帮助您序列化不同类型的IEnumebles。

答案 1 :(得分:0)

无法从基类继承Serializable属性。将其添加到子类,然后重试。

答案 2 :(得分:0)

你不能序列化一个界面---计算机不是说谎,你知道; - )

尝试使用具体类型。而不是IEnumerable<IB>尝试List<object>或数组。

HTH