0

我有(为了简单起见)2个类1)抽象类A 2)从A继承的B类。

现在我正在使用一种方法“callMethod(A argument)”,它在 wsdl 中公开了我的抽象类。

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

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

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

任何想法?非常感谢

4

1 回答 1

0

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

问题是 wsdl 必须包含类型以便 B 的属性在客户端是已知的,否则您将永远无法使用 B 客户端。B 的 wsdl 将包括它继承 A 的事实。

换句话说,在客户端,您的对象确实是 A - 因为只有公共属性被序列化,如果 web 方法通过 A,A 或 B 之间没有区别。

于 2011-01-27T16:05:41.850 回答