Я переношу код с NSBv4 на NSBv5 (точнее, 5.2.12), и у меня есть реализация пользовательского профиля:
public class MyProfileHandler : IHandleProfile<PerformanceCounters>
{
public MyProfileHandler()
{
}
public void ProfileActivated(BusConfiguration config)
{
// I need to do something based on endpoint configuration, e.g. endpoint name
// this used to work in NSBv4:
// var endpointName = Configure.EndpointName;
}
}
Как я могу получить доступ к конфигурации конечной точки здесь?
Я размещаю это приложение с помощью NServiceBus.Host (v6.0.0, если это имеет значение), и отсюда берется интерфейс IHandleProfile<T>
.
BusConfiguration
- это сборщик конфигураций и, похоже, ничего полезного из него прочитать не получится. Я попытался внедрить экземпляр Configure
в конструктор моего обработчика профиля, но затем он падает - NSB нужно, чтобы обработчик имел конструктор без параметров.
Реализация IWantTheEndpointConfig
также не вариант, так как она устарела в v5 и вызывает ошибку компиляции. Его устаревшее сообщение об ошибке гласит:
IHandleProfile
теперь передается экземплярConfigure
(что было бы идеально для моего случая), но, насколько я могу судить, это неверно (нет Configure
, переданного ProfileActivated()
, и я не вижу, как я могу его внедрить).
Является ли мой единственный вариант переопределить обработчик профиля, используя совершенно другой подход, или я что-то упускаю?