NServiceBus如何知道使用哪个DLL?

时间:2015-02-17 15:33:31

标签: c# nservicebus nservicebus4

这不是问题,而是让我理解NserviceBus中发生的“神奇”的问题

我有一个工作环境,以这种方式调用NServiceBus-Service:

"D:\Service\NServiceBus.Host.exe" -service  /serviceName:"MyServiceAdapter" /endpointName:"MyQueue.Adapter"

现在在同一目录中有我的应用程序“My.Adapter.dll”,它也有一个配置。任何地方都没有NserviceBus.config。仍然:NserviceBus似乎知道它必须使用“My.Adapter.dll”

为什么NServiceBus知道这一点?我没有在队列(MSMQ)或我的应用程序的任何其他位置找到任何引用。它是否保存在注册表中?如果是:在哪里?

1 个答案:

答案 0 :(得分:5)

默认情况下,NServiceBus使用NServiceBus.Host.exe扫描位于同一文件夹中的所有程序集,并查找自己的标记(接口),如IWantCustomInitialization,IHandleMessage等。它使用其默认的IoC容器构建器(Autofac)或您提供的那个。

您还可以限制使用Configure.With(assemblies)代表V4和configuration.AssembliesToScan(myListOfAssemblies)代表V5扫描哪些程序集。

更多内容请阅读http://docs.particular.net/nservicebus/assembly-scanning