0

私は(物事を簡単にするために)2つのクラスを持っています1)抽象クラスA 2)AからクラスBを継承しました。

現在、wsdl で抽象クラスを公開しているメソッド「callMethod(A argument)」を使用しています。

しかし、問題は、クライアント側で、A が B であるか他の何かであるかを知りたいということです。そして、wsdl にないため利用できないクラス B に到達できるようにしたいと考えています。

KnownTypeAttribute と ServiceKnownTypeAttribute を試しましたが、動作させることができません。

もちろん、タイプ B のパラメーターを使用するダミー メソッドを作成して、クラス B を WSDL で公開することもできますが、それは専門的ではありません。

何か案が?どうもありがとう

4

1 に答える 1

0

私は同じ問題に直面しましたが、私が見つけた唯一のことは、型を公開するメソッドを持っていることでした (長期的には必要でしたが)。

問題は、B のプロパティがクライアント側で認識されるように、wsdl に型を含める必要があることです。そうしないと、B クライアント側を使用できません。B の wsdl には、A を継承するという事実が含まれます。

つまり、クライアント側では、オブジェクトは実際には A です。パブリック プロパティのみがシリアル化されるため、webmethod が A を渡す場合、A と B の間に違いはありません。

于 2011-01-27T16:05:41.850 に答える