一个非常简单的入门级ASP.NET Core Autofac使用
2020-12-27 20:28
标签:rri types ted serve cep private 学习 config new
好好学习,天天向上。
这是结构。
方法一 在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 }
不知道如何深入学习, 有哪位能够指点一下学习道路。感激不尽
一个非常简单的入门级ASP.NET Core Autofac使用
标签:rri types ted serve cep private 学习 config new
原文地址:https://www.cnblogs.com/Cjb8973/p/13858902.html
上一篇:o.s.web.servlet.PageNotFound - Request method 'POST' not supported 的一种可能
下一篇:调试 node.js 程序
文章标题:一个非常简单的入门级ASP.NET Core Autofac使用
文章链接:http://soscw.com/essay/38663.html