0

次のような基本クラス構造があります。

class Mammal { ... }
class Human : Mammal { ... }
class Tiger : Mammal { ... }
class Snake : Mammal { ... }

このサービスはMammalクラスのプロパティのみに基づいてアクションを実行するため、タイプごとに個別の Web メソッドを作成する必要はないと思います (それ以外の場合は、条件文を使用することもできます)。

私が得ているエラーは、翻訳者またはそのようなものを宣言する必要があるということであり、それについての議論を思い出したことを考えると (しかし、今は見つけられません)、それがまったく実行可能かどうか疑問に思います. WCF を使用する場合、継承構造を再作成することはできないと誰かが言ったのを覚えています。

それを解決する方法はありますか、それとも同じ呼び出しを行うがそれぞれ異なるタイプの入力を受け取る多数の公開されたサービスを保持する必要がありますか?

編集

探しているものを明確にするために、次のコードを実行したいと思います。

Human human = new Human { ... };
Tiger tiger = new Tiger { ... };
Snake snake = new Snake { ... };

ServiceClient client = new ServiceClient();
client.DoStuffTo(human);
client.DoStuffTo(tiger);
client.DoStuffTo(snake);
client.Close();

サービスの署名は次のとおりです。

[OperationContract(Name = "DoStuffTo")]
[WebInvoke]
String DoStuffTo(Mammal mammal);
4

1 に答える 1

1

をご覧くださいServiceKnownTypeAttribute

そしてこの記事で

于 2013-07-25T12:04:24.103 に答える