我有一个asp.net web api控制器,它发送一个nservicebus消息,即Bus.Send()。这个api控制器是使用owinselfhost包自己托管的。
如果我正在使用owinselfhost,那么注入总线的正确方法是什么?
- 编辑 -
这里是代码..我现在使用autofac ..有这些仍然在总线上给我一个空的ref异常......
的引用:
http://docs.autofac.org/en/latest/integration/webapi.html#owin-integration
http://docs.particular.net/nservicebus/containers/
- 编辑 -
public void Configuration(IAppBuilder app)
{
var builder = new ContainerBuilder();
//this two controllers are from two separate class libraries.
builder.RegisterApiControllers(typeof(Test1Controller).Assembly);
builder.RegisterApiControllers(typeof(Test2Controller).Assembly);
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
Configure.With()
.UsingContainer<AutofacObjectBuilder>()
.UnicastBus()
.SendOnly();
app.UseAutofacMiddleware(container);
app.UseAutofacWebApi(config);
app.UseWebApi(config);
}
答案 0 :(得分:3)
您要求NServiceBus使用Autofac,但您没有将其提供给您的容器。如果您将容器传递到那里,您将把总线注入控制器。
Configure.With()
.UsingContainer<AutofacObjectBuilder>(container)
.UnicastBus()
.SendOnly();