1

ソリューションを設計しているときにどこかで立ち往生しているため、あなたの専門知識と提案が必要です。

問題は、それぞれが異なるパラメーターを持つ 30 種類のリクエストがあるため、これらの 30 種類のリクエストを 30 種類の異なるリクエスト入力として扱っていますが、応答はすべての種類のリクエストで同じです。

ここで、既存の wcf サービス内に、30 種類の要求すべてに対応できる 1 つの操作を作成する必要があります。

単一の操作でこれを処理する方法がわかりません。リクエストを個別に処理するために 30 の操作を作成したくありません。

4

2 に答える 2

2

リクエスト タイプがすべて同じタイプから派生している場合は、ServiceKnownTypes 属性を使用してポリモーフィックに公開できます。

[DataContract]
[KnownType(typeof(RequestFromThisGuy))]
[KnownType(typeof(RequestFromThisOtherGuy))]
public class UberRequest
{
    ...
}

[DataContract]
public class RequestFromThisGuy: UberRequest
{
    ...
}

[DataContract]
public class RequestFromThisOtherGuy: UberRequest
{
    ...
} 

次に、サービス操作:

[OperationContract]
CommonResponseType DoSomething (UberRequest request)
于 2013-10-07T12:19:27.327 に答える