如果使用 owinselfhost,注入总线的正确方法是什么?
What is the correct way of injecting the bus if using owinselfhost?
我有一个 asp.net 网络 api 控制器发送 nservicebus 消息,即 Bus.Send()。此 api 控制器是使用 owinselfhost 包自行托管的。
如果我使用 owinselfhost,注入总线的正确方法是什么?
--编辑--
这是代码..我现在使用 autofac..这些仍然给我一个总线上的空引用异常...
参考文献:
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);
}
你要求 NServiceBus 使用 Autofac 但你没有给它你的容器。如果你在那里传递你的容器,你将把总线注入你的控制器。
Configure.With()
.UsingContainer<AutofacObjectBuilder>(container)
.UnicastBus()
.SendOnly();
我有一个 asp.net 网络 api 控制器发送 nservicebus 消息,即 Bus.Send()。此 api 控制器是使用 owinselfhost 包自行托管的。
如果我使用 owinselfhost,注入总线的正确方法是什么?
--编辑--
这是代码..我现在使用 autofac..这些仍然给我一个总线上的空引用异常...
参考文献:
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);
}
你要求 NServiceBus 使用 Autofac 但你没有给它你的容器。如果你在那里传递你的容器,你将把总线注入你的控制器。
Configure.With()
.UsingContainer<AutofacObjectBuilder>(container)
.UnicastBus()
.SendOnly();