【问题标题】:nservicebus subscriber implementationnservicebus 订户实现
【发布时间】:2010-08-18 19:49:26
【问题描述】:

是否需要订阅者中的事件处理程序?例如:

项目:

CRM.事件: NewUserCreated : IMessage {}

CRM.Publisher: 控制台应用发布为 Bus.Publish(new NewUserCreated());

Crm.订阅者: 订阅 NewUserCreated 事件的控制台应用程序。

Crm.EventHandlers NewUserCreatedHandler : IHandleMessages { ... }

我是否需要 Crm.Subscriber 中的 NewUserCreatedHandler 或者我可以仅引用 Crm.Subscriber 中的 Crm.EventHandlers 程序集以便 NSB 可以调用处理程序?

谢谢

【问题讨论】:

    标签: nservicebus


    【解决方案1】:

    您可以只引用事件处理程序程序集。这是因为 NSB 会扫描 bin 目录中的所有程序集以查找实现 IHandleMessages 的类。

    也就是说,您能解释一下为什么要将消息处理程序与“Crm.Subscriber”项目分开吗?

    【讨论】:

    • 我的想法是,如果我需要将订阅者从控制台应用程序更改为 Windows 服务,我可以简单地将该程序集引用到 Windows 服务中,而不是将文件复制到 Windows 服务。
    • NServiceBus 自带的通用主机进程可以自动为你做这件事——见nservicebus.com/GenericHost.aspx
    • 谢谢大家,现在一切都清楚了。是否有在解决方案中创建项目的推荐/最佳实践/首选方式?我知道这是一个通用问题,但我看到人们建议在单独的项目中创建命令和事件。解决方案中的项目结构是否还有其他问题或建议?
    猜你喜欢
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多