我(简单易行)2节课 1)抽象类A 2)从A继承B类。
现在我正在使用方法“callMethod(A argument)” 这是在wsdl中公开我的抽象类。
但问题是,在客户端,我希望能够知道A是B还是其他东西。我希望能够达到B级,因为它不在wsdl中,所以不可用。
我已经尝试过KnownTypeAttribute和ServiceKnownTypeAttribute,但我无法让它工作。
现在我当然可以创建一个使用类型B参数的虚方法,从而导致类B在WSDL中公开,但那是不专业的。
有什么想法吗? 非常感谢
答案 0 :(得分:0)
我遇到了同样的问题,我发现的唯一一件事就是有一个暴露这种类型的方法(虽然我从长远来看需要一个)。
问题是wsdl必须包含类型,以便在客户端知道B的属性,否则你不能使用B客户端。 B的wsdl将包含它继承A。
的事实在客户端的其他词中,您的对象确实是A - 因为只有公共属性被序列化,如果Web方法通过A,则A或B之间没有区别。