.net core——(1) IOC
2023-09-11 14:18:38 时间
简单介绍
实际上就是一个容器自动帮我们创建我们将要使用的对象(实例),不再使用new
关键字创建对象。
层层依赖链也会自动生成。
简单的使用流程
引用 https://ke.qq.com/webcourse/index.html#cid=461522&term_id=100552326&taid=3900113773071058&type=1024&vid=5285890795070645475
使用dotnet core 自带的ioc容器比较简单:创建容器(实例化)、注册、构造对象。
安装完dotnet core 3.1 的linux
创建控制台程序
nuget安装依赖
https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection/3.1.3
添加一些代码
在新建的控制台程序中的main函数里添加如下代码(注意IDog提前写好的,要添加引用,Microsoft.Extensions.DependencyInjection也要添加using)
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
//创建容器
IServiceCollection Container = new ServiceCollention();
//注册
Container.AddTransient<IDog,Dog>();
var Provider = Container.BuildServiceProvider();
//获取对象
IDog dog = Provider.GetService<IDog>();
dog.Say();
}
生命周期
Transient: 每一次GetService都会创建一个新的实例
Scoped: 在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http request会在一个 scope内)
Singleton :整个应用程序生命周期以内只创建一个实例
参考: https://www.cnblogs.com/jesse2013/p/di-in-aspnetcore.html
三种注入方式
构造器注入、属性注入、方法注入。
相关文章
- Docker系列之.NET Core入门(三)
- 你所不知道的ASP.NET Core MVC/WebApi基础系列(二)
- 学习ASP.NET Core Blazor编程系列九——服务器端校验
- 学习ASP.NET Core Razor 编程系列八——并发处理
- 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面
- 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- ASP.NET Core 6.0 基于模型验证的数据验证
- 10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)
- 应用程序连接hbase报错:java.net.SocketTimeoutException: callTimeout=60000
- Model validation in ASP.NET Core MVC and Razor Pages
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
- (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法
- [.Net Core] 简单使用 Mvc 内置的 Ioc(续)
- 【23种设计模式】单例模式(Singleton Pattern) .Net Core实现
- ASP.NET Core 高性能开发最佳实践
- java.net.UnknownHostException: nacos-payment-provider] with root cause
- [WPF]是时候将WPF控件库从.Net Framework升级到.NET Core 3.1
- 如何将.NET Core部署为Windows服务
- 体验.net core 3.1 socket
- 发布ASP.NET Core程序到Linux生产环境
- .Net Core Grpc 实现通信
- 二、Core授权-2 之.net core 基于Identity 授权
- Asp.Net Core 获取配置系统Configuration
- 针对.NET Core的图像类库
- .net web 开发平台- 表单设计器 一(web版)
- 深入 .NET Core 基础 - 2:共享框架