1

在设计我的解决方案时,我有点卡在某个地方,因此需要您的专业知识和建议。

问题是:我有 30 种类型的请求,每个请求都有不同的参数,因此我将这 30 个请求视为 30 个不同的请求输入,但所有请求类型的响应都是相同的。

现在我需要在我现有的 wcf 服务中创建一个操作,它可以满足所有 30 种类型的请求。

我不知道如何在单个操作中满足这一点。我不想创建 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 回答
-1

棘手的

public void MyOperation(List<InputType> inputs)
        { 
            // your stuffs here. 

        }
于 2013-10-07T11:45:13.643 回答