对象模型契约

时间:2010-03-25 15:57:50

标签: c# generics interface

我正在尝试基于来自我的核心对象模型的接口为WCF创建数据模型,但是我遇到了一些关联的问题

目前我的核心数据模型中有这个

public class A : IA {
       public string name { /* ... */ }
       public EntitySet<B> children { /* ... */ }
}
public class B : IB {
       public string name { /* ... */ }
}

然而,当我定义接口IA时,我得到编译器错误,说A没有实现所有的IA。这是界面

public interface IA<BType> where BType: IB  {
   string name {get; set;}
   IEnumerable<Btype> children {get;}
}

在给定这些类和接口定义的情况下,为什么A的实例不能作为IA引用传递?

1 个答案:

答案 0 :(得分:1)

编译错误,因为public EntitySet<B> children不是IEnumerable<Btype> children {get;}的实现(.net&lt; 4.0版本不支持协方差\ contravariance)