如何使用单个 wcf 操作处理 30 个请求

本文关键字:请求 处理 操作 何使用 单个 wcf | 更新日期: 2023-09-27 18:34:08

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

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

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

我不知道如何在单个操作中满足这一点。我不想创建 30 个操作来单独处理请求。

如何使用单个 wcf 操作处理 30 个请求

如果请求类型都派生自同一类型,则可以使用 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)

棘手

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