2014-10-06 53 views
0

我们有一个使用WCF构建的系统,我们正在将其转换为使用Mass Transit和RabbitMQ。减少大众运输所需的样板代码

因为它是/是一个WCF服务,它的运行方式非常RESTful,没有状态或会话。

考虑到这一点,搬迁到大众搬家公司需要大量的锅炉板码。例如,我们可能有100个WCF调用。对于每一个,我将不得不实施一个单独的Request/Response对,除了名称之外,它们彼此没有什么不同。显然,我甚至不能使用继承来抽象出CorrelatedBy<Guid>语法。

有没有什么办法可以减少这样做所需的样板代码的数量?

我当前MassTransit代码如下所示:

sbc.Subscribe(subConfig => 
{ 
    subConfig.Handler<CanAllocateLicensedDeviceRequest>((ctx, req) => 
    { 
     bool result = this.licenceActions.CanAllocateLicensedDevice(); 

     ctx.Respond<CanAllocateLicensedDeviceResponse>(new CanAllocateLicensedDeviceResponse() { Result = result }); 
    }); 
} 

我理解需要键入的要求,但我能不能有我回应一个通用的“布尔”返回类型。 Guid不会确保它到达正确的地方吗?

回答

0

您可以使用单个响应类型来避免为每个请求/响应配对创建一个“ok”响应类型。

您也不需要使用CorrelatedBy,因为在请求/响应对话的客户端的SendRequest调用中会自动为您设置RequestId。