gpt4 book ai didi

asp.net-mvc - 是否可以配置 Autofac 以与 ASP.NET MVC 和 ASP.NET Web Api 一起使用

转载 作者:行者123 更新时间:2023-12-02 03:49:49 30 4
gpt4 key购买 nike

是否可以将 Autofac 配置为与 ASP .NET MVC 和 ASP .NET Web Api 一起使用。我知道依赖解析器是不同的。但是,当使用记录的方法时,我只能设置一个全局解析器。

// Set the dependency resolver implementation.
GlobalConfiguration.Configuration.DependencyResolver = resolver;

这种方法是坏主意吗?我应该将我的解决方案分成两个项目并单独处理每个项目的依赖项注入(inject)吗?

最佳答案

当然可以将 Autofac 配置为同时使用 MVC 和 Web API。预计这将是一种非常常见的情况。由于 MVC 和 Web API 可以相互独立使用,因此有两种独立的依赖关系解析器实现。这同样适用于 Autofac 集成。

当在同一应用程序中同时使用 MVC 和 Web API 时,尽管可以使用相同的容器实例来提供它们,但它们都需要自己的依赖项解析器。

var builder = new ContainerBuilder();

// Add your registrations

var container = builder.Build();

// Set the dependency resolver for Web API.
var webApiResolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = webApiResolver;

// Set the dependency resolver for MVC.
var mvcResolver = new AutofacDependencyResolver(container);
DependencyResolver.SetResolver(mvcResolver);

还可以在两者之间共享注册,因为 InstancePerApiRequestInstancePerHttpRequest 生命周期范围现在共享相同的标记。

请注意,Web API 和 MVC 设置依赖解析器的机制是不同的。 Web API 使用 GlobalConfiguration.Configuration.DependencyResolver,MVC 使用 DependencyResolver.SetResolver

关于asp.net-mvc - 是否可以配置 Autofac 以与 ASP.NET MVC 和 ASP.NET Web Api 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11484904/

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