首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NServiceBus.IStartableBus未在容器中注册。NServiceBus 4.6.3

NServiceBus.IStartableBus未在容器中注册。NServiceBus 4.6.3
EN

Stack Overflow用户
提问于 2014-07-21 19:32:02
回答 1查看 298关注 0票数 0

我正在尝试一个非常简单的应用程序,它使用NServiceBus和Ninject。

我试图使用Ninject作为NServiceBus的容器,但是我得到了以下错误-- "NServiceBus.IStartableBus未在容器中注册“。

我相信答案很明显..。别对我说!

我的代码如下

代码语言:javascript
复制
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()
    {

    }
}
代码语言:javascript
复制
namespace NServiceBus_Ninject_Simple
{
    public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
    { }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 05:58:52

谷歌的小组讨论也是同样的问题。

似乎您在错误的地方创建了配置。它应该是这样的:

代码语言:javascript
复制
public abstract class DefaultEndpointConfig
    : IConfigureThisEndpoint
    , IWantCustomInitialization
{
  IWantCustomInitialization.Init()
  {
    Configure
      .With()
      .NinjectBuilder();
      // + any other config;

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

  public virtual void Init()
  {
  }
}

请参阅这里(Johannes Gustafsson)

它需要在端点配置中完成(对于每个端点,这就是他建议使用基类的原因),并且需要实现IConfigureThisEndpoint

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24873191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档