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的使用相关推荐

  1. 跟我一起学.NetCore之Asp.NetCore中集成Autofac扩展

    前言 前两节针对.NetCore自带的依赖注入进行简要概述,对于日常开发的需求应该是能满足了,那为什么还需要引入第三方依赖注入组件呢,这里就从自带的依赖注入来分析,有什么样的需求满足不了?主要归纳为以 ...

  2. 如何在 .NETCore 中修改 QueryString ?

    咨询区 vcsjones: 我有一个绝对路径的 url 包含了 querystring,现在我想对 querystring 进行修改和添加,我不想生硬的用字符串提取,或者是 正则表达式,而且还有恶心的 ...

  3. 深入剖析.NETCORE中CORS(跨站资源共享)

    前言 由于现代互联网的飞速发展,我们在开发现代 Web 应用程序中,经常需要考虑多种类型的客户端访问服务的情况:而这种情况放在15年前几乎是不可想象的,在那个时代,我们更多的是考虑怎么把网页快速友好的 ...

  4. .NetCore中三种注入生命周期的思考

    .NetCore彻底诠释了"万物皆可注入"这句话的含义,在.NetCore中到处可见注入的使用.因此core中也提供了三种注入方式的生命周期使用,分别是: AddTransient ...

  5. .NetCore中三种注入方式的思考

    .NetCore中三种注入方式的思考 原文:.NetCore中三种注入方式的思考 该篇内容由个人博客点击跳转同步更新!转载请注明出处! .NetCore彻底诠释了"万物皆可注入"这 ...

  6. .NetCore中EFCore for MySql整理(二)

    一.简介 EF Core for MySql的官方版本MySql.Data.EntityFrameworkCore 目前正是版已经可用当前版本v6.10,对于以前的预览版参考:http://www.c ...

  7. netcore中使用HttpContext.Current

    新建HttpContext类 using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft. ...

  8. Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...

    Coravel Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举! Coravel 帮助开发人员在不影响代码质量的情况下快速启动和 ...

  9. netcore 中的动态代理与RPC实现(微服务专题)

    一.关于RPC的调用 1. 调用者(客户端Client)以本地调用的方式发起调用: 2. Client stub(客户端存根)收到调用后,负责将被调用的方法名.参数等打包编码成特定格式的能进行网络传输 ...

  10. .NETCore中实现ObjectId反解

    前言 在设计数据库的时候,我们通常需要给业务数据表分配主键,很多时候,为了省事,我都是直接使用 GUID/UUID 的方式,但是在 MonggoDB 中,其内部实现了 ObjectId(以下统称为Oi ...

最新文章

  1. 在Windows7/10上通过VS2013编译FFmpeg 4.1.3源码操作步骤
  2. php 面向对象开发 类的学习 一
  3. IE8下 Select文字垂直居中的办法
  4. Java-Runoob:Java Stream、File、IO
  5. java selenium (十) 操作浏览器
  6. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-第2章-线性矩阵不等式
  7. React中props与state的区别
  8. 自制串口示波器小工具
  9. RSA加密-解密以及解决超长内容加密失败解决
  10. c语言输出行末不得有多于空格,新人提问:如何将输出时每行最后一个空格删除...
  11. diag开关什么意思_双控开关接线图_一灯双控开关接线图_单联双控开关接线图_双控开关接线图实物图...
  12. 修改折半查找算法进行范围查找
  13. js关于字面量与构造函数创建对象的几点理解
  14. 讲解开源项目:用 Python 生成有“灵魂”的二维码
  15. ASCII 码表对照 2
  16. C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)...
  17. oracle误删数据恢复
  18. 高新计算机考试培训 ppt,全国计算机高新技术考试.ppt
  19. 【Python】视频转换成图片
  20. 个推透传消息设置通知栏展示 ios_企微功能十问 | 企业微信如何开启聊天侧边栏功能,有什么用?...

热门文章

  1. SDUT OJ 多项式求和
  2. 呼吸系统疾病病人的护理题库【1】
  3. java 8新特性之effectively final
  4. 软件测试应届简历,软件测试应届毕业生个人简历
  5. 我见众生皆无意,唯有见你动了情(表白日记分享篇)
  6. GitHub 上一款全能高速下载工具!堪比某度的会员
  7. 利用python绘制自定义棋盘格
  8. 怎么让两个java文件关联,怎么把多个excel文件合并成一个【几个excle合并成一个】...
  9. linux hosts文件的修改------利用root权限来vim /etc/hosts
  10. Cocos Creator 安卓复制功能