Ioc&DI
2020-09-16 11:29:46 11 举报
AI智能生成
登录查看完整内容
IOC&DI基础知识
作者其他创作
大纲/内容
IoC&DI
IoC(控制反转)
定义
控制
反转
实现方式
依赖注入(Dependency Injection)
类型
Setter属性注入
Demo
构造函数注入
接口注入
反射与依赖注入
反射定义
ASP.Net Core 依赖关系注入(服务)
CSDN概述
依赖
注入
容器
实例注册
核心组件
IServiceCollection
ServiceCollection
IServiceProvider
使用Autofac替换其它容器
变化
依赖查找(Dependency Lookup)
作用
IoC容器
Autofac
AutoFac入门
基础知识
创建组件
1. 类型创建
RegisterType<T>()
2. 实例创建
RegisterInstance<>(new())
3. Lambda表达式创建
Register
4. 程序集创建
RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
5. 泛型注册
builder.RegisterGeneric(typeof()).As(typeof()).InstancePerLifetimeScope();
6. 默认注册
builder.RegisterType<Student>().As<>().PreserveExistingDefaults();
注册方式
1. As
2. Named
3. Keyed
检索
IIndex
按照控制反转(IoC)思想构建应用
添加Autofac引用
应用启动
在Startup.cs中创建 ContainerBuilder.
注册组件
在Program.cs中创建容器
应用执行
从容器中创建一个生命周期
在此生命周期作用域内解析组件实例
Autofac配置
使用JSON/XML配置
注册概念
反射组件
通过类型注册
指定构造函数
实例组件
Lambda表达式组件
复杂参数
参数注入
通过参数值选择具体的实现
开放泛型组件
服务 VS .组件
默认注册
有条件的注册
注册的配置
动态提供的注册
注册时传参
可使用的参数类型
反射组件的参数
Lambda表达式组件的参数
属相和方法注入
属性注入
方法注入
程序集扫描
扫描类型
过滤类型
指定服务
扫描模块
IIS 托管的 Web 应用
解析服务
解析时传参
可用参数类型
不显式调用Resolve传参
隐式关系类型
支持的关系类型
直接依赖(B)
延迟实例化(Lazy<B>)
可控生命周期(Owned<B>)
动态实例化(Func<B>)
组合关系类型
关系类型和容器独立性
生命周期
开始使用生命周期和作用域
实例作用域
Captive Dependencies
释放
生命周期事件
启动时运行代码
配置
JSON/XML配置
模块
集成
ASP.NET
.NET Core
ASP.NET Core
BLazor
Windows Communication Foundation(WCF)
Service Fabric
Managed Extensibility Framework(MEF)
Common Service Locator
Enterprise Library 5
NHibernate
Moq
FakeltEasy
实践
0 条评论
回复 删除
下一页