我正在运行NServiceBus 2.0并尝试创建一个服务来接收转发的消息并将它们放入(RavenDB)数据库中。我承认我没有牢牢掌握NServiceBus如何使用IoC容器(我之前也没有使用过Spring),所以我可能做错了。
在我的IWantToRunOnStartup类中,我得到一个空引用异常,我调用Store.Initialize()。我正确挂钩这个单身吗?我需要在配置文件中做些什么吗?
以下是代码:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server, IWantCustomInitialization
{
private IMessageRepository _store;
public void Init()
{
_store = new RavenMessageRepository();
Configure.With()
.DefaultBuilder()
.XmlSerializer()
.UnicastBus();
Configure.Instance.Configurer.RegisterSingleton<IMessageRepository>(_store);
}
}
public class StartupConfig : IWantToRunAtStartup
{
public IMessageRepository Store;
public void Run()
{
Store.Initialize();
}
public void Stop()
{
}
}
谢谢 -
答案 0 :(得分:2)
您需要将Store成员更改为具有get / set的属性。我还没有证实这一点,但容器可能正在寻找一个setter而无法找到它(从评论中复制,所以其他人认为它已经回答了)