我正在将代码从 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()
,我看不到如何注入它)。
我是使用完全不同的方法重新实现配置文件处理程序的唯一选择,还是我遗漏了什么?