.NET5 依赖注入,关于 Autofac 使用
2021-03-03 02:26
标签:http std www mon net figure asi where 加载 VS2019 关于以下几个概念,自行百度。 控制反转:IOC(Inversion of Control) 依赖注入: 容器:DI 容器(.NET Core 自带),Autofac(本文要说明使用的) VS2019 打开 NuGet 管理器:工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 程序包 如图,我安装了这两个 using 命名空间 Autofac.Extensions.DependencyInjection using 命名空间 Autofac 修改 ConfigureContainer 方法(如果没有,则添加。添加以后,程序会自动调用此方法,无需手工。) 控制器代码,其中 rtnCommon 只是一个通用 Json 返回格式,无需关注。请关注注释的几句代码。 对应的 Interface 和 class,定义接口和实现接口。 前面第1和第3步不变,修改第2步。需要 using 命名空间 System.Reflection (C# 反射相关请自行百度。) 修改 Straup.cs 文件中的 ConfigureContainer 方法(如果没有,则添加。添加以后,程序会自动调用此方法,无需手工。) 约定接口(Interface)和实现(class)都是以 Service 结尾的。 三、生命周期 四、Autofac 配置文件 https://www.cnblogs.com/Cjb8973/p/13858902.html (Cjb8973 的 一个非常简单的入门级ASP.NET Core Autofac使用) https://www.cnblogs.com/baocaige/p/11987902.html (Liu_Cabbage 的 FineAdmin.Mvc 使用ok-admin+ASP.NET MVC搭建的通用权限后台管理系统)【参考了是他的开源项目,不过项目是MVC5的】 .NET5 依赖注入,关于 Autofac 使用 标签:http std www mon net figure asi where 加载 原文地址:https://www.cnblogs.com/clis/p/14294042.html前置
工具
概念
一、安装 Autofac
二、在项目中使用 Autofac
1、修改 Program.cs 文件
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())//添加Autofac服务
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup
2、修改 Startup.cs 文件
public void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterType
3、控制器构造函数注入
public class AccountController : Controller
{
private IUserService _userService; //定义
public AccountController(IUserService userService)
{
_userService = userService; //完成注入
}
public async Task
//接口
public interface IUserService
{
Task
4、实现批量注入
public void ConfigureContainer(ContainerBuilder builder)
{
//加载程序集
var urpIService = Assembly.Load("urp.IService");
var urpService = Assembly.Load("urp.Service");
//根据名称约定(服务层的接口和实现均以Service结尾),实现服务接口和服务实现的依赖
builder.RegisterAssemblyTypes(urpIService, urpService)
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces().PropertiesAutowired();
}
参考来源
上一篇:HTTP请求向服务器传参方式
下一篇:使用工具网站
文章标题:.NET5 依赖注入,关于 Autofac 使用
文章链接:http://soscw.com/index.php/essay/59305.html