我正在尝试基于来自我的核心对象模型的接口为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引用传递?
答案 0 :(得分:1)
编译错误,因为public EntitySet<B> children
不是IEnumerable<Btype> children {get;}
的实现(.net&lt; 4.0版本不支持协方差\ contravariance)