我正在尝试一个非常简单的应用程序,它使用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
{ }
}发布于 2014-07-22 05:58:52
谷歌的这小组讨论也是同样的问题。
似乎您在错误的地方创建了配置。它应该是这样的:
public abstract class DefaultEndpointConfig
: IConfigureThisEndpoint
, IWantCustomInitialization
{
IWantCustomInitialization.Init()
{
Configure
.With()
.NinjectBuilder();
// + any other config;
// Call optional endpoint specific config
Init();
}
public virtual void Init()
{
}
}它需要在端点配置中完成(对于每个端点,这就是他建议使用基类的原因),并且需要实现IConfigureThisEndpoint。
https://stackoverflow.com/questions/24873191
复制相似问题