有没有人找到使用NServiceBus的智能方法,而不必为所有消息实现无用的IMessage标记接口?
特别是,当使用DomainEvents时,我绝对不愿意将我的域耦合到特定的servce总线实现。
答案 0 :(得分:5)
我刚注意到Udi正在向NServiceBus 3.0添加Unobtrusive Mode。它出现 这将解决这个问题。甚至还有一个sample writeup,但你必须在此时提取最新的github(2012年2月)。如果你愿意忍受一些潜在的不稳定性来获得纯粹的POCO消息,你可以尝试一下。
答案 1 :(得分:1)
需要IMessage接口,以便NServiceBus可以在序列化程序中自动注册这些类型。使用域事件时,不建议直接在总线上发布它们 - 相反,域事件处理程序会将它们转换为服务级事件(继承IMessage)。
答案 2 :(得分:0)
您可以创建自己的接口来实现NSB标记接口,然后将NSB依赖项ILMerge到您自己的DLL中。这应该允许您只需要引用自己的Dll,而不需要外部引用NSB。
它是NSB为自己的依赖所做的事情,所以你应该能够扩展这个想法,一定要查看这种方法的缺陷 - Udi最近在博客上发表了
答案 3 :(得分:0)
六个月后,仍然没有关于这个问题(修复/改进)??
可能的解决方案摘要: 1)ILMerge或.. 2)自定义包装消息的自定义调度程序。
所有这些都是因为IMessage标记界面。