[英]How can I “bootstrap” Castle Windsor into my ASP.NET MVC 6 project?
我正在嘗試在ASP.NET MVC 6項目中使用Castle Windsor IoC容器。
我按照Windsor教程 - ASP.NET MVC 3應用程序中描述的步驟進行了第4部分 ,其中的說明是:
...我們將在應用程序中使用(唯一的實例),安裝我們的安裝程序,並告訴MVC基礎架構使用我們的控制器工廠而不是它自己的默認值。 所有這些都發生在global.asax文件中。
看到在MVC 6中Startup.cs
取代了global.asax
,我應該如何將Castle Windsor引導到我的應用程序中?
我還沒有嘗試過,但似乎解決方案是在“ 替換默認服務容器 ”下的ASP.NET 5依賴注入文檔中給出的。
有關AutoFac的示例,但相同的三個步驟可應用於Castle Windsor我相信:
將適當的容器包添加到project.json中的dependencies屬性。
"dependencies" : {
"Autofac": "4.0.0-beta8",
"Autofac.Framework.DependencyInjection": "4.0.0-beta8"
},
接下來,在Startup.cs中,在ConfigureServices
配置容器並更改該方法以返回IServiceProvider
而不是void:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// add other framework services
// Add Autofac
var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterModule<DefaultModule>();
containerBuilder.Populate(services);
var container = containerBuilder.Build();
return container.Resolve<IServiceProvider>();
}
最后,在DefaultModule中將Autofac配置為正常:
public class DefaultModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<CharacterRepository>().As<ICharacterRepository>();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.