WCF 服务未为运行时多态性生成类
本文关键字:多态性 运行时 服务 WCF | 更新日期: 2023-09-27 18:30:28
我用几个继承的类 A1、A2、A3 等创建了我的基类 A。
现在,使用 WCF 服务,我正在尝试返回包含类型为 A1、A2 甚至 A 的对象的列表。
WCF 是否支持此功能?我不断收到连接关闭错误。
例如。
class A{
//do something
}
class B:A{
//do something
}
class C:A{
//do something
}
WCF Service calling GetAll method which returns
public List<A> GetAll()
{
var obj= new List<A>();
obj.Add(new B());
obj.Add(new C());
return obj;
}
现在,WCF 服务只了解 A,而没有 B 和 C。我怎么还能返回这个对象。根据哎呀,这是有效的,但我不知道服务
我能够通过将 KnownType 属性添加到服务公开的类来解决此问题。
http://msdn.microsoft.com/en-us/library/ms730167.aspx
已知类型在运行时解析序列化
[KnownType(typeof(B))]
[KnownType(typeof(C))]
class A{
//do something
}
class B:A{
//do something
}
class C:A{
//do something
}