NServiceBus - IHandleMessages <T>与IMessageHandler <T>有什么关系?

Tho*_*att 8 .net nservicebus

NServiceBus 2.0中的IHandleMessages<T>vs有什么IMessageHandler<T>意义?

一个接口派生自另一个接口,并且似乎没有在T上添加任何新方法或新约束.有可能一个是标记接口,但在评论中没有证据.

Udi*_*han 9

原因是它遵循NServiceBus中接口的新命名约定,其中名称明确说明它的作用:IHandleMessages,IPersistSagas,IContainSagaData等.开头的字母"i"是说自己的界面.

当这些结合在一起时,这些代码库的可读性更高,如果只是轻微的,但是使框架的语言更接近于开发人员的语言,从而减少学习曲线和使用摩擦.

  • 我并不完全同意它会减少学习曲线.如果有的话,增加了复杂性和混乱; 因此,托马斯要问的原因.我处于同样的境地.使用Reflector和分析花了更多时间来弄清楚你在使用两个接口做了什么. (7认同)
  • Udi,也许你应该用ObsoleteAttribute标记IMessageHandler <T> :) (7认同)
  • 我明白了,但是如果不破坏与所有现有代码的兼容性,我就无法更改界面名称. (2认同)
  • 我也觉得有些烦人,用类型名称的前几个字母获得的信息熵也变得微不足道.这就像翻阅电话簿一样,每个人的名字都以"IWant"开头,不是非常具有描述性,而且作为一个索引也毫无用处,大脑通常会对此进行索引. (2认同)