NServiceBus 新手
我看了看NServicceBus
它IProvideConfiguration
在自己的内部 DI 容器中查找的内容,但我无法弄清楚在引导/初始化过程中NServiceBus
配置是否真正搜索标记接口?
另外我如何控制这个过程?例如。使其仅在特定组件上扫描?
您还可以覆盖此扫描过程并将其注册到容器中,而不是让它覆盖您提供的实例吗?
NServiceBus 新手
我看了看NServicceBus
它IProvideConfiguration
在自己的内部 DI 容器中查找的内容,但我无法弄清楚在引导/初始化过程中NServiceBus
配置是否真正搜索标记接口?
另外我如何控制这个过程?例如。使其仅在特定组件上扫描?
您还可以覆盖此扫描过程并将其注册到容器中,而不是让它覆盖您提供的实例吗?
NServiceBus 中的所有约定接口都是在 With() 子句中的程序集扫描期间拾取的。默认情况下,这会搜索当前 appdomain 目录中的所有程序集。您可以使用 With() 重载之一来限制应扫描的内容,即。Configure.With(AllAssemblies.Except("Legacy.dll")。据我所知,程序集扫描本身不可插入。
这需要更多调查,但它会触发.Start()
另外调用配置问题的顺序。这是一个令人讨厌的疏忽 - 配置期间的操作顺序应该无关紧要。如果您首先声明您的 appsettings,而不是连接字符串,反之亦然。但在 NServiceBus 中确实如此。
因此,例如,如果您.UnityBuilder(myContainer)
在开始时调用,IProvideConfiguration<>
那么您在 myContainer 上注册,将用于您的订阅、saga 持久性和任何其他此类配置。
当然,为了保持良好的 OSS 传统,文档应该保持在零到令人沮丧的最低限度 - 这样他们就可以出售“咨询”服务。如果有人记录许多配置方法的前后条件,我会节省几个小时以上的时间——但没有。