Исключить определенные обработчики хоста nservicebus (классы) в версии 3.x
У меня есть хост NServiceBus, который подписан на какое-то событие и имеет свой собственный обработчик (#1). Этот хост также имеет ссылку на сборку, которая содержит другой обработчик (#2) для того же события. Я хочу исключить обработчик № 2 из конфигурации NServiceBus, но не могу удалить ссылочную сборку.
Важно:
1) Я попытался настроить сканирование с помощью этого: http://docs.particular.net/nservicebus/hosting/assembly-scanning
2) Я использую NServiceBus версии 3.x
1 ответ
Удалить сборку
NServiceBus v3 сканирует сборки. Если сборка не требуется во время выполнения, просто удалите ее, чтобы она не сканировалась.
То, что на него ссылаются, не требует его развертывания.
Исключая сборку (черный список)
Исключите сборку, как указано в документации:
var allAssemblies = AllAssemblies
.Except("MyAssembly1.dll")
.And("MyAssembly2.dll");
Configure.With(allAssemblies);
http://docs.particular.net/nservicebus/hosting/assembly-scanning
Включить сборки или типы (белые списки)
Разрешить сканирование только определенного набора сборок или типов. В основном, разбирает белый список диапазона сборок или типов.
сборки:
IEnumerable<Assembly> allowedAssembliesToScanForTypes;
Configure.With(allowedAssembliesToScanForTypes);
// or
Configure.With(assembly1, assembly2);
Типы:
IEnumerable<Type> allowedTypesToScan;
Configure.With(allowedTypesToScan);
Исключить конкретные типы
// Results in the same assembly scanning as used by NServiceBus internally
var allTypes = from a in AllAssemblies.Except("Dummy")
from t in a.GetTypes()
select t;
// Exclude handlers that you do not want to be registered
var allowedTypesToScan = allTypes
.Where(t => t != typeof(EventMessageHandler))
.ToList();
Configure.With(allowedTypesToScan);
http://docs.particular.net/nservicebus/hosting/assembly-scanning