Web服务在wsdl中向客户端公开了一个复杂类型

时间:2011-01-27 15:57:23

标签: c# web-services wsdl class-attributes

我(简单易行)2节课 1)抽象类A 2)从A继承B类。

现在我正在使用方法“callMethod(A argument)” 这是在wsdl中公开我的抽象类。

但问题是,在客户端,我希望能够知道A是B还是其他东西。我希望能够达到B级,因为它不在wsdl中,所以不可用。

我已经尝试过KnownTypeAttribute和ServiceKnownTypeAttribute,但我无法让它工作。

现在我当然可以创建一个使用类型B参数的虚方法,从而导致类B在WSDL中公开,但那是不专业的。

有什么想法吗? 非常感谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我发现的唯一一件事就是有一个暴露这种类型的方法(虽然我从长远来看需要一个)。

问题是wsdl必须包含类型,以便在客户端知道B的属性,否则你不能使用B客户端。 B的wsdl将包含它继承A。

的事实

在客户端的其他词中,您的对象确实是A - 因为只有公共属性被序列化,如果Web方法通过A,则A或B之间没有区别。