[英]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.