0

コードを 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 では、ハンドラーにパラメーターのないコンストラクターが必要です。

v5 で廃止され、コンパイル エラーが発生するため、実装IWantTheEndpointConfigもオプションではありません。古いエラー メッセージには次のように記載されています。

IHandleProfileのインスタンスが渡されるようになりましたConfigure

(これは私の場合には完璧です)が、私が知る限り、これは真実ではありません(Configure渡されたものProfileActivated()がなく、どのように注入できるかわかりません)。

まったく異なるアプローチを使用してプロファイル ハンドラーを再実装する唯一のオプションですか、それとも何か不足していますか?

4

2 に答える 2