微信 wordpress搜索,seo网站推广的目的包括哪个方面,seo优化专员收集关键词的方法,创建一个网站的技术依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性#xff0c;ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持#xff0c;然而内置的依赖注入容器相比成熟的 依赖注入容器 太弱了。为了解决这个问题#xff0c;可以使用第三方的依… 依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持然而内置的依赖注入容器相比成熟的 依赖注入容器 太弱了。为了解决这个问题可以使用第三方的依赖注入容器换句话说你可以非常方便的使用 第三方容器 替换 原生容器 Autofac 就是这么一款优秀的依赖注入容器这篇文章我们将会讨论如何在 ASP.Net Core 中使用 Autofac。安装 Autofac 安装 Autofac 非常简单要么通过 Nuget 可视化界面进行安装。要么在 NuGet Package Manager Console 命令行中输入如下命令。
Install-Package Autofac
Install-Package Autofac.Extensions.DependencyInjection创建注入类 为了能更好的解释依赖注入考虑下面的 IAuthorRepository 接口它包含了一个 GetMessage() 方法。public interface IAuthorRepository{string GetMessage();}接下来创建一个实现 IAuthorRepository 接口的 AuthorRepository 子类如下代码所示public class AuthorRepository : IAuthorRepository{public string GetMessage(){return Hello World;}}哈哈上面就是一个极简版的 仓储模式 目前还没有典型仓储模式有拥有的 CURD 方法大家有兴趣可以补起来。配置 Autofac 为了能够配置 Autofac可以在 Startup.ConfigureServices() 方法中进行配置大概分为以下两部分。创建 container 容器将 service 注入到里面可以使用 Autofac 框架提供的 Populate() 方法将 services 灌入到 container 中如下代码所示var containerBuilder new ContainerBuilder();containerBuilder.Populate(services);将自定义的类注入到 Container 中这个实现就简单了通过 RegisterType() 方法将自定义的类注入到 Autofac 容器中如下代码所示containerBuilder.RegisterTypeAuthorRepository().AsIAuthorRepository();然后构建 container 容器如下代码所示var container containerBuilder.Build();return container.ResolveIServiceProvider();接下来是 ConfigureServices() 方法的完整代码仅供参考。public IServiceProvider ConfigureServices(IServiceCollection services){services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);var containerBuilder new ContainerBuilder();containerBuilder.Populate(services);containerBuilder.RegisterTypeAuthorRepository().AsIAuthorRepository();var container containerBuilder.Build();return container.ResolveIServiceProvider();}在 Controller 中使用 Autofac 一切都配置好之后接下来可以在 Controller 中实现注入如下代码所示[Route(api/[controller])][ApiController]public class ValuesController : ControllerBase{private IAuthorRepository _authorRepository;public ValuesController(IAuthorRepository authorRepository){_authorRepository authorRepository;}[HttpGet]public ActionResultstring Get(){return _authorRepository.GetMessage();}}依赖注入 是 控制反转 的一种实现方法它的一大特点在于在外部统一管理对象之间的依赖关系从而解除代码内部之间的依赖关系正如 Autofac 这样的 IOC 容器利用了控制反转实现了对象的自动初始化和对象的生命周期管理。依赖注入有三种方式构造函数注入接口注入属性注入显而易见在本篇中我用的是 构造函数注入。我们已经看到了如何在 ASP.Net Core 中使用 Autofac 替换默认的 Container 但我们不能仅仅停留在简单使用上更多深度的用法我会在后面的文章中和大家一起聊。译文链接https://www.infoworld.com/article/3397077/how-to-use-autofac-in-aspnet-core.html