作者:烧饼来一个则_815 | 来源:互联网 | 2023-09-14 18:04
篇首语:本文由编程笔记#小编为大家整理,主要介绍了一个非常简单的入门级ASP.NETCoreAutofac使用相关的知识,希望对你有一定的参考价值。好好学习,天天向
篇首语:本文由编程笔记#小编为大家整理,主要介绍了一个非常简单的入门级ASP.NET Core Autofac使用相关的知识,希望对你有一定的参考价值。
好好学习,天天向上。
这是结构。
方法一 在Program中,添加Autofac服务
1:
1 public static void Main(string[] args)
2 {
3 CreateHostBuilder(args).Build().Run();
4 }
5 // public static IHostBuilder CreateHostBuilder(string[] args) =>
6 //Host.CreateDefaultBuilder(args)
7 // .ConfigureWebHostDefaults(webBuilder =>
8 // {
9 // webBuilder.UseStartup();
10 // }).UseServiceProviderFactory(new AutofacServiceProviderFactory());
11 public static IHostBuilder CreateHostBuilder(string[] args) =>
12 Host.CreateDefaultBuilder(args)
13 .UseServiceProviderFactory(new AutofacServiceProviderFactory())//添加Autofac服务
14 .ConfigureWebHostDefaults(webBuilder =>
15 {
16 webBuilder.UseStartup();
17 });
2: Startup类修改ConfigureContainer方法
1 public void ConfigureContainer(ContainerBuilder builder)
2 {
3 builder.RegisterType().As();
4 }
方法二, 继承module
1. 创建CustomAutofacModule 类
1 public class CustomAutofacModule :Autofac.Module
2 {
3 ///
4 /// AutoFac注册类
5 ///
6 ///
7 protected override void Load(ContainerBuilder builder)
8 {
9 /*单次注入*/
10 builder.RegisterType().As();
11 14 }
15 24 }
2: Startup类修改ConfigureContainer方法
public void ConfigureContainer(ContainerBuilder builder)
{
// 直接用Autofac注册我们自定义的
//
builder.RegisterModule(new CustomAutofacModule());
}
批量注入
修改CustomAutofacModule 类
1 public class CustomAutofacModule :Autofac.Module
2 {
3 ///
4 /// AutoFac注册类
5 ///
6 ///
7 protected override void Load(ContainerBuilder builder)
8 {
9 ///*单次注入*/
10 //builder.RegisterType().As();
11 //注册Service中的对象,Service中的类要以Service结尾,否则注册失败
12 builder.RegisterAssemblyTypes(GetAssemblyByName("Services")).
13 Where(a => a.Name.EndsWith("Service")).AsImplementedInterfaces();
14 }
15 ///
16 /// 根据程序集名称获取程序集
17 ///
18 /// 程序集名称
19 ///
20 public static Assembly GetAssemblyByName(String AssemblyName)
21 {
22 return Assembly.Load(AssemblyName);
23 }
24 }
之后再控制器注入调用一下就好(接口方法就自己去随便定义一下了,这只是一个初级入门。)
1 public class HomeController : Controller
2 {
3 private readonly ILogger _logger;
4 private readonly IOneService _server;
5 private readonly IArticleService _articleService;
6
7 public HomeController(ILogger logger, IOneService service, IArticleService articleService)
8 {
9 _logger = logger;
10 _server = service;
11 _articleService = articleService;
12 }
13
14 public IActionResult Index()
15 {
16 string a = _server.SayHi();
17 string b = _articleService.article();
18 return View();
19 }
20
21
22 }
不知道如何深入学习, 有哪位能够指点一下学习道路。感激不尽