kso- netCore 中 Autofac的使用
Autofac的使用
- 引用nuget
Autofac Autofac.Configuration Autofac.Extensions.Dependencylnjection
2.再 Steup 创建 ContainerBuilder 方法
public void ConfigureContainer(ContainerBuilder conBuilder) { }
3.构造函数注入
~~~
public void ConfigureContainer(ContainerBuilder conBuilder) {
conBuilder.RegisterType<AAA>().As<IAAA>(); }~~~
4.属性注入
public void ConfigureContainer(ContainerBuilder conBuilder) {
conBuilder.RegisterType<AAA>().As<IAAA>().PropertiesAutowired();
}
生命周期
//瞬时生命周期 每次都是新实例conBuilder.RegisterType<TestServiceA>().As<ITestServiceA>().InstancePerDependency();//单例生命周期 ~~~
containerBuilder.RegisterType<TestServiceA>().As<ITestServiceA>().SingleInstance();
~~~//每个生命周期范围一个实例 ~~~
containerBuilder.RegisterType<TestServiceA>().As<ITestServiceA>().InstancePerLifetimeScope();~~~//每个匹配生命周期范围一个实例 ~~~
ContainerBuilder con= new ContainerBuilder();
con.RegisterType<AA>().As<IAA>().InstancePerMatchingLifetimeScope("AA");
IContainer container = con.Build();using (var sco= container.BeginLifetimeScope("AA"))
{// 一个USing一个生命周期
}~~~每个请求一个实例 ~~~
ContainerBuilder con= new ContainerBuilder();
con.RegisterType<AA>().As<IAA>().InstancePerRequest();
IContainer container = containerBuilder.Build();
using (var sco= container.BeginLifetimeScope())
{IAA A1= sco.Resolve<IAA>();IAA A2= sco.Resolve<IAA>();Console.WriteLine(object.ReferenceEquals(A1, A2));
}
~~~
MVC与WebApi
public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).UseServiceProviderFactory(new AutofacServiceProviderFactory());//替换在Startup类增加ConfigureContainer 方法 public void ConfigureContainer(ContainerBuilder builder){builder.RegisterType<TestServiceA>().As<ITestServiceA>();builder.RegisterType<TestServiceUpdate>().As<ITestServiceA>(); }//建议 使用扩展方法,进行使用实现自动注入
kso- netCore 中 Autofac的使用相关推荐
- 跟我一起学.NetCore之Asp.NetCore中集成Autofac扩展
前言 前两节针对.NetCore自带的依赖注入进行简要概述,对于日常开发的需求应该是能满足了,那为什么还需要引入第三方依赖注入组件呢,这里就从自带的依赖注入来分析,有什么样的需求满足不了?主要归纳为以 ...
- 如何在 .NETCore 中修改 QueryString ?
咨询区 vcsjones: 我有一个绝对路径的 url 包含了 querystring,现在我想对 querystring 进行修改和添加,我不想生硬的用字符串提取,或者是 正则表达式,而且还有恶心的 ...
- 深入剖析.NETCORE中CORS(跨站资源共享)
前言 由于现代互联网的飞速发展,我们在开发现代 Web 应用程序中,经常需要考虑多种类型的客户端访问服务的情况:而这种情况放在15年前几乎是不可想象的,在那个时代,我们更多的是考虑怎么把网页快速友好的 ...
- .NetCore中三种注入生命周期的思考
.NetCore彻底诠释了"万物皆可注入"这句话的含义,在.NetCore中到处可见注入的使用.因此core中也提供了三种注入方式的生命周期使用,分别是: AddTransient ...
- .NetCore中三种注入方式的思考
.NetCore中三种注入方式的思考 原文:.NetCore中三种注入方式的思考 该篇内容由个人博客点击跳转同步更新!转载请注明出处! .NetCore彻底诠释了"万物皆可注入"这 ...
- .NetCore中EFCore for MySql整理(二)
一.简介 EF Core for MySql的官方版本MySql.Data.EntityFrameworkCore 目前正是版已经可用当前版本v6.10,对于以前的预览版参考:http://www.c ...
- netcore中使用HttpContext.Current
新建HttpContext类 using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft. ...
- Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Coravel Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举! Coravel 帮助开发人员在不影响代码质量的情况下快速启动和 ...
- netcore 中的动态代理与RPC实现(微服务专题)
一.关于RPC的调用 1. 调用者(客户端Client)以本地调用的方式发起调用: 2. Client stub(客户端存根)收到调用后,负责将被调用的方法名.参数等打包编码成特定格式的能进行网络传输 ...
- .NETCore中实现ObjectId反解
前言 在设计数据库的时候,我们通常需要给业务数据表分配主键,很多时候,为了省事,我都是直接使用 GUID/UUID 的方式,但是在 MonggoDB 中,其内部实现了 ObjectId(以下统称为Oi ...
最新文章
- 在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤
- php 面向对象开发 类的学习 一
- IE8下 Select文字垂直居中的办法
- Java-Runoob:Java Stream、File、IO
- java selenium (十) 操作浏览器
- 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第2章-线性矩阵不等式
- React中props与state的区别
- 自制串口示波器小工具
- RSA加密-解密以及解决超长内容加密失败解决
- c语言输出行末不得有多于空格,新人提问:如何将输出时每行最后一个空格删除...
- diag开关什么意思_双控开关接线图_一灯双控开关接线图_单联双控开关接线图_双控开关接线图实物图...
- 修改折半查找算法进行范围查找
- js关于字面量与构造函数创建对象的几点理解
- 讲解开源项目:用 Python 生成有“灵魂”的二维码
- ASCII 码表对照 2
- C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)...
- oracle误删数据恢复
- 高新计算机考试培训 ppt,全国计算机高新技术考试.ppt
- 【Python】视频转换成图片
- 个推透传消息设置通知栏展示 ios_企微功能十问 | 企业微信如何开启聊天侧边栏功能,有什么用?...
热门文章
- SDUT OJ 多项式求和
- 呼吸系统疾病病人的护理题库【1】
- java 8新特性之effectively final
- 软件测试应届简历,软件测试应届毕业生个人简历
- 我见众生皆无意,唯有见你动了情(表白日记分享篇)
- GitHub 上一款全能高速下载工具!堪比某度的会员
- 利用python绘制自定义棋盘格
- 怎么让两个java文件关联,怎么把多个excel文件合并成一个【几个excle合并成一个】...
- linux hosts文件的修改------利用root权限来vim /etc/hosts
- Cocos Creator 安卓复制功能