我正在尝试获取一个WCF服务来返回一个List,该List包含从A继承但在服务返回列表时“基础连接意外关闭”的类实例。
我有以下
[DataContract]
[Serializable]
public class A { ... }
[DataContract]
[Serializable]
public class B : A { ... }
[DataContract]
[Serializable]
public class C : A { ... }
然后我将服务定义为
[ServiceContract( NameSpace = "Name.Space" )]
public interface I
{
[OperationContract]
List<A> GetList();
}
如果我尝试按如下方式返回列表
List<A> list = new List<A>()
{
new B(),
new C()
}
我在代理类中遇到上述错误。
如果更改服务以返回列表&lt; B&gt;并且只是将B添加到它它返回正常,所以这使我相信它与WCF与子类型有困难。
我尝试过添加
[ServiceKnownType( typeof( B ) )]
[ServiceKnownType( typeof( C ) )]
对A的班级定义,无济于事。
那么,是否可以通过WCF返回同一列表中的子类型列表?
如果是这样,我错过了什么/做错了什么?
提前感谢您提供的任何帮助
答案 0 :(得分:3)
啊,我似乎应该使用KnownType而不是ServiceKnownType
抱歉打扰
此致