C# WCF服务未为运行时多态性生成类

C# WCF服务未为运行时多态性生成类,c#,.net,wcf,oop,C#,.net,Wcf,Oop,我用几个继承的类A1、A2、A3等创建了基类A 现在,使用WCF服务,我试图返回一个列表,其中包含类型可以是A1、A2甚至A的对象 WCF支持这一点吗?我正在不断地关闭连接错误 例如 A类{ //做点什么 } B类:A{ //做点什么 } 丙类:甲{ //做点什么 } WCF服务调用返回的GetAll方法 公共列表GetAll() { var obj=新列表(); 对象添加(新B()); 对象添加(新C()); 返回obj; } 现在WCF服务只知道a,而不知道B和C。我怎么还能返回这个对象呢

我用几个继承的类A1、A2、A3等创建了基类A

现在,使用WCF服务,我试图返回一个列表,其中包含类型可以是A1、A2甚至A的对象

WCF支持这一点吗?我正在不断地关闭连接错误

例如

A类{
//做点什么
}
B类:A{
//做点什么
}
丙类:甲{
//做点什么
}
WCF服务调用返回的GetAll方法
公共列表GetAll()
{
var obj=新列表();
对象添加(新B());
对象添加(新C());
返回obj;
}

现在WCF服务只知道a,而不知道B和C。我怎么还能返回这个对象呢。根据oops,这是有效的,但我不知道服务

我可以通过向服务公开的类添加KnownType属性来解决这个问题

KnownType在运行时解析序列化

[KnownType(typeof(B))]
[KnownType(typeof(C))]
class A{
//do something
}

class B:A{
//do something
}

class C:A{
//do something
}
[KnownType(typeof(B))]
[KnownType(typeof(C))]
class A{
//do something
}

class B:A{
//do something
}

class C:A{
//do something
}