首页 > 其他分享 >NET6 IOC 基本流程 ( 蒋金楠书籍)

NET6 IOC 基本流程 ( 蒋金楠书籍)

时间:2023-02-12 14:11:06浏览次数:37  
标签:判断 对象 是否 获取 蒋金楠 参数 注册 NET6 IOC

准备要注册的对象 和接口,以及注册的生命周期
准备注册,先检查 是否释放
检测是否 已注册,没有则添加到 集合内并返回当前对象


GetService
根据接口获取对象,判断是否为v容器类还是 服务提供就接口,是的话直接返回当前对象

判断是否是泛型和 获取泛型 的基本类型给判断serviceType.IsGenericType && serviceType.GetGenericTypeDefinition() == typeof(IEnumerable<>))

判断服务是否已注册,
new 一个key ,在 root ,self 中用的到

根据生命周期 来对象 ,root ,self 先判断是否 已生对象,没有则 去生产对象
Transient 直接去生成新对象, 并根据是否 实现IDisposable 来 来是否添加到 Disposable是否集合里

生产对象:
判断是否有泛型参数是否有值
获取构造函数

获取自定义属性

没有自定义属性则赋值构造函数
获取构造函数参数

参数为长度0 则创建对对象并返回

如果 有参数则遍历参数
在传入当前参数并调用GetService

去创建对象,并通过委托执行 返回

 

标签:判断,对象,是否,获取,蒋金楠,参数,注册,NET6,IOC
From: https://www.cnblogs.com/liujian1368928/p/17113743.html

相关文章

  • IOC本质
    IOC本质1、控制反转IOC是一种设计思想,DI(依赖注入)是实现IOC的一种方法,也有人认为DI只是IOC的另一种说法。没用IOC的容器中,使用面向对象编程,对象的创建与对象间的依赖关系完......
  • ASP.NET6 + Mongo + OData
    准备工作Docker环境Mongo数据库配置Mongo数据库ASP.NET6集成Mongo安装MongoDB.Driver{"Logging":{"LogLevel":{"Default":"Infor......
  • Linux 串口驱动实例简单分析(x86 8250驱动(16550A),TIOCMGET, TIOCMSET, RTS)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 【学习笔记】IOC的推导及本质
    IOC的推导及本质 1.IOC理论推导原来要实现一个业务,需要Service接口、ServiceImpl、Dao接口、DaoImpl如下:UserDao接口:packagecom.wang.dao;​publicinterfaceU......
  • 华普物联AIOCAT版本 HP-AIOCAT-244
    HP-AIOCAT-244是一款支持4路输入、4路输出、2路模拟量检测、1路温度检测的网络IO产品,支持ModbusRTU/TCP协议。以“远程控制”作为功能核心,高度易用性,用户可方便快速的集成......
  • 【3】.NET6最通俗易懂的依赖注入之服务容器与作用域
    这篇文章是ASP.NET6依赖注入系列文章的第3篇。在上一篇文章中,我们讨论依赖注入的基本用法与生命周期。接下来,在这篇文章中,我们继续深入了解服务容器相关的概念。服......
  • IOC创建对象的方式
    一.1.IOC创建对象默认使用无参构造。2.假设我们要使用有参构造,spring也提供了一些方法。第一种,下标赋值<!--第一种,下标赋值--><beanid="User"class="top.lo......
  • Spring 注解实现IOC
    Spring注入方式(三种):1、set注入<beanid="将要创建对象名"class="要创建的对象的属性全类名"><!--通过property标签给对象的属性赋值name:set:方法中的属性名......
  • .Net6对AOP的多种支持之IAsyncResourceFilter
     环境:.Net6Web项目Mvc结构开发工具:VS2022IAsyncResourceFilter(资源缓存异步)IAsyncResourceFilter扩展   ASP.NETCore6提供的是接口IAsyncResourceFilter......
  • IOC基本概念
    一、Spring简介:一个轻量级框架,以IOC(InversionofControl控制反转)和AOP(AspectOrientedProgramming面向切面编程)为核心,还提供了声明式事务,对DAO层(SpringJDBC)的支持。......