簡體   English   中英

NServiceBus.IStartableBus未在容器中注冊。 NServiceBus 4.6.3

[英]NServiceBus.IStartableBus is not registered in the container. NServiceBus 4.6.3

我正在嘗試使用NServiceBus和Ninject一個非常簡單的應用程序。

我試圖將Ninject用作NServiceBus的容器,但出現以下錯誤-“ NServiceBus.IStartableBus未在容器中注冊。”

我相信答案是顯而易見的……只是對我而言!

我的代碼如下

public class StartApp : IWantCustomInitialization, IWantToRunWhenBusStartsAndStops
{
    private static IKernel _kernel;
    public IBus Bus { get; set; }

    public void Init()
    {
        Configure.Serialization.Json();
    }

    public void Start()
    {
        _kernel = new StandardKernel();

        Configure.With()
            .NinjectBuilder(_kernel)
            .CreateBus()
            .Start();

        Bus.Send(new TestMessage {Id = Guid.NewGuid(), MessageText = "Bloop"});
    }

    public void Stop()
    {

    }
}


namespace NServiceBus_Ninject_Simple
{
    public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
    { }
}

Google網上論壇討論是關於同一問題的。

似乎您在錯誤的位置創建了配置。 它看起來應該像這樣:

public abstract class DefaultEndpointConfig
    : IConfigureThisEndpoint
    , IWantCustomInitialization
{
  IWantCustomInitialization.Init()
  {
    Configure
      .With()
      .NinjectBuilder();
      // + any other config;

    // Call optional endpoint specific config
    Init();
  }

  public virtual void Init()
  {
  }
}

這里(約翰內斯·古斯塔夫森)

這需要在EndPoint-Configuration中完成(對於每個端點,這就是他建議使用基類的原因),並且它需要實現IConfigureThisEndpoint

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM