gpt4 book ai didi

c# - 如何将 "bootstrap"CaSTLe Windsor 放入我的 ASP.NET MVC 6 项目中?

转载 作者:行者123 更新时间:2023-11-30 12:57:23 26 4
gpt4 key购买 nike

我正在尝试使用 Castle Windsor ASP.NET MVC 6 项目中的 IoC 容器。

我已按照 Windsor Tutorial - ASP.NET MVC 3 application 中描述的步骤进行操作最多 part 4其中的说明是:

... we'll be using in the app (the one and only instance), install our installer, and tell MVC infrastructure to use our controller factory instead of its own default. All of that happens in the global.asax file.

看到 MVC 6 中的 Startup.cs 替换了 global.asax,我应该如何将 CaSTLe Windsor 引导到我的应用程序中?

最佳答案

我还没有尝试过,但似乎documentation 中给出了解决方案用于“Replacing the default services container”下的 ASP.NET 5 依赖注入(inject)。

这里有 AutoFac 的示例,但我相信同样的三个步骤也可以应用于温莎城堡:

将适当的容器包添加到 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>();
}
}

关于c# - 如何将 "bootstrap"CaSTLe Windsor 放入我的 ASP.NET MVC 6 项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com