WCF服务不为运行时多态性生成类

时间:2013-09-07 17:46:27

标签: c# .net wcf oop

我创建了我的基类A,其中有几个继承的类A1,A2,A3等等。

现在,使用WCF服务我试图返回List,它包含可以是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.我怎么还能返回这个对象。根据oops,这是有效的,但我不知道服务

1 个答案:

答案 0 :(得分:2)

我能够通过将KnownType属性添加到服务公开的类中来解决这个问题。

http://msdn.microsoft.com/en-us/library/ms730167.aspx

KnownType在运行时解析序列化

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

class B:A{
//do something
}

class C:A{
//do something
}