热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:一个非常简单的入门级ASP.NETCoreAutofac使用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了一个非常简单的入门级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 }

 

 

不知道如何深入学习, 有哪位能够指点一下学习道路。感激不尽

 




推荐阅读
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 如何使用 `org.apache.tomcat.websocket.server.WsServerContainer.findMapping()` 方法及其代码示例解析 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 使用种子数据在Asp.NET Core 3.0 Web API迁移过程中写入数据库的详细步骤
    本文详细阐述了如何在Asp.NET Core 3.0 Web API的迁移过程中利用种子数据将信息写入数据库的具体步骤。对于开发人员而言,掌握这一技术能够显著提高数据初始化的效率和准确性。文章不仅提供了详细的代码示例,还深入解析了每个步骤背后的原理,帮助读者更好地理解和应用这一方法。 ... [详细]
  • 本文详细解析了Autofac在高级应用场景中的具体实现,特别是如何通过注册泛型接口的类来优化依赖注入。示例代码展示了如何使用 `builder.RegisterAssemblyTypes` 方法,结合 `typeof(IEventHandler).Assembly` 和 `Where` 过滤条件,动态注册所有符合条件的类,从而简化配置并提高代码的可维护性。此外,文章还探讨了这一方法在复杂系统中的实际应用及其优势。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • .NET Core 托管服务优化与实践
    在.NET Core应用中,托管服务的形式主要分为进程内托管(InProcess)和进程外托管(OutOfProcess)。这两种托管方式各有优缺点,本文将深入探讨它们的特点,并结合实际案例,介绍如何根据具体需求选择合适的托管模式,以实现性能优化和资源利用的最大化。此外,文章还将分享一些实用的配置技巧和最佳实践,帮助开发者提升应用的稳定性和可维护性。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • 在C#编程中,设计流畅的用户界面是一项重要的任务。本文分享了实现Fluent界面设计的技巧与方法,特别是通过编写领域特定语言(DSL)来简化字符串操作。我们探讨了如何在不使用`+`符号的情况下,通过方法链式调用来组合字符串,从而提高代码的可读性和维护性。文章还介绍了如何利用静态方法和扩展方法来实现这一目标,并提供了一些实用的示例代码。 ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
author-avatar
烧饼来一个则_815
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有