如何使用单个 wcf 操作处理 30 个请求
本文关键字:请求 处理 操作 何使用 单个 wcf | 更新日期: 2023-09-27 18:34:08
我在设计解决方案时有点卡在某个地方,因此需要您的专业知识和建议。
问题是:我有 30 种类型的请求,每种请求都有不同的参数,因此我将这 30 个请求视为 30 个不同的请求输入,但所有请求类型的响应都是相同的。
现在,我需要在现有的 wcf 服务中创建一个操作,它可以满足所有 30 种类型的请求。
我不知道如何在单个操作中满足这一点。我不想创建 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.
}