【发布时间】:2015-12-15 12:53:07
【问题描述】:
我正在将代码从 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(),我看不出如何注入它)。
是我唯一的选择是使用完全不同的方法重新实现配置文件处理程序,还是我遗漏了什么?
【问题讨论】: