0

NServiceBus 新手

我看了看NServicceBusIProvideConfiguration在自己的内部 DI 容器中查找的内容,但我无法弄清楚在引导/初始化过程中NServiceBus配置是否真正搜索标记接口?

另外我如何控制这个过程?例如。使其仅在特定组件上扫描?

您还可以覆盖此扫描过程并将其注册到容器中,而不是让它覆盖您提供的实例吗?

4

2 回答 2

1

NServiceBus 中的所有约定接口都是在 With() 子句中的程序集扫描期间拾取的。默认情况下,这会搜索当前 appdomain 目录中的所有程序集。您可以使用 With() 重载之一来限制应扫描的内容,即。Configure.With(AllAssemblies.Except("Legacy.dll")。据我所知,程序集扫描本身不可插入。

于 2013-04-28T14:44:08.707 回答
0

这需要更多调查,但它会触发.Start()另外调用配置问题的顺序。这是一个令人讨厌的疏忽 - 配置期间的操作顺序应该无关紧要。如果您首先声明您的 appsettings,而不是连接字符串,反之亦然。但在 NServiceBus 中确实如此。

因此,例如,如果您.UnityBuilder(myContainer)在开始时调用,IProvideConfiguration<>那么您在 myContainer 上注册,将用于您的订阅、saga 持久性和任何其他此类配置。

当然,为了保持良好的 OSS 传统,文档应该保持在零到令人沮丧的最低限度 - 这样他们就可以出售“咨询”服务。如果有人记录许多配置方法的前后条件,我会节省几个小时以上的时间——但没有。

于 2013-05-03T23:10:42.843 回答