本文介绍Auofac,一个优秀的.NET IOC框架
1、打开NuGet包管理器安装Autofac.Extensions.DependencyInjection包
![img](https://img-blog.csdnimg.cn/9fe375fb05e94a1983a91ce6c1ac1fcb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3Vuc2hpbmVHR0I=,size_20,color_FFFFFF,t_70,g_se,x_16)
2、Program.cs 启用Autofac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }
|
3、Startup.cs 新增Autofac并初始化容器
![img](https://img-blog.csdnimg.cn/d611b2155f8944799859ba60e3f9e6e7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3Vuc2hpbmVHR0I=,size_20,color_FFFFFF,t_70,g_se,x_16)
1 2 3 4 5 6 7 8 9 10
| public ILifetimeScope AutofacContainer { get; private set; }
public void ConfigureContainer(ContainerBuilder builder) { }
|
![img](https://img-blog.csdnimg.cn/a6efe90388fd4c4faebece6c3126beb4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc3Vuc2hpbmVHR0I=,size_20,color_FFFFFF,t_70,g_se,x_16)
1 2 3
| AutofacContainer = app.ApplicationServices.GetAutofacRoot(); IoCContainer.InitContainer(AutofacContainer);
|
4、新建Autofac IOC 容器类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
public class IoCContainer { private static ILifetimeScope _container; public static void InitContainer(ILifetimeScope autofacContainer) { _container = autofacContainer; } public static T Resolve<T>() { return _container.Resolve<T>(); } }
|
5、新建读取配置文件工具类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
public class Configs { private static readonly IConfiguration configuration; static Configs() { configuration = IoCContainer.Resolve<IConfiguration>(); } public static IConfigurationSection GetSection(string key) { return configuration.GetSection(key); } public static string GetConfigurationValue(string section, string key) { return GetSection(section)?[key]; } public static string GetConnectionString(string key) { return configuration.GetConnectionString(key); } }
|
6、新建控制器,使用!读取配置的另一种方式来啦!
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [ApiController] [Route("[controller]")] public class TestController : ControllerBase { [HttpGet, HttpPost] public void GetContent() { var url = Configs.GetSection("Setting:Url").Value; var name = Configs.GetConfigurationValue("Setting", "Name"); } }
|
以上就是.net core AutoFac的简单学习使用 + 读取配置文件的新方式的介绍,做此记录,如有帮助,欢迎点赞关注收藏!