C# 如何将附加数据传递给Castle拦截器?

C# 如何将附加数据传递给Castle拦截器?,c#,wcf,rabbitmq,castle-windsor,castle-dynamicproxy,C#,Wcf,Rabbitmq,Castle Windsor,Castle Dynamicproxy,我有一个类作为WCF服务公开。类生存期由Castle Windsor管理,它附加了许多拦截器,如日志方面和权限方面。使用WCF,我可以在消息头中传递一些额外的数据,比如用户名或userSessionId。然后,在服务器端,权限拦截器可以使用OperationContext.Current.IncomingMessageHeaders并读取进行调用的用户。然后,它可以允许调用继续或引发异常 问题是,现在我想抛弃WCF,用其他东西代替它(RabbitMQ是例外)。如何获得与WCF Operation

我有一个类作为WCF服务公开。类生存期由Castle Windsor管理,它附加了许多拦截器,如日志方面和权限方面。使用WCF,我可以在消息头中传递一些额外的数据,比如用户名或userSessionId。然后,在服务器端,权限拦截器可以使用OperationContext.Current.IncomingMessageHeaders并读取进行调用的用户。然后,它可以允许调用继续或引发异常


问题是,现在我想抛弃WCF,用其他东西代替它(RabbitMQ是例外)。如何获得与WCF OperationContext.Current类似的功能,但没有WCF?或者在IInvocation中添加一些额外的数据,这样拦截器就可以读取了?拦截器必须像往常一样对世界其他地方透明。

将绑定更改为与RabbitMQ一起工作而不是不使用WCF,怎么样?我考虑过了。但在RabbitMQ网站上,它写道:.NET/C#RabbitMQ客户端库应尽可能优先于WCF绑定使用。WCF绑定受到许多限制,因此没有进一步的开发计划。WCF服务模型文档中描述了这些限制。“任何软件问题都可以通过添加另一个层来修复”,如果您添加一个额外的层并从调用参数中检索额外的参数会怎么样?这有意义吗?这正是微软对WCF所做的,所以我不必自己实现它。当然,我可以实现一个层来实现它。我的问题是RabbitMQ中是否有一些内置功能可以做到这一点。将绑定更改为与RabbitMQ一起使用而不是不使用WCF如何?我考虑过这一点。但在RabbitMQ网站上,它写道:.NET/C#RabbitMQ客户端库应尽可能优先于WCF绑定使用。WCF绑定受到许多限制,因此没有进一步的开发计划。WCF服务模型文档中描述了这些限制。“任何软件问题都可以通过添加另一个层来修复”,如果您添加一个额外的层并从调用参数中检索额外的参数会怎么样?这有意义吗?这正是微软对WCF所做的,所以我不必自己实现它。当然,我可以实现一个层来实现它。我的问题是RabbitMQ中是否有一些内置功能可以做到这一点。