autofac

autofac 在webapi中拿到当前request的scope

五迷三道 提交于 2020-05-01 18:22:45
https://stackoverflow.com/questions/31321386/autofac-web-api-get-current-scope Unless you are using OWIN in your API, you should have your Autofac configuration setup in your WebAPI like this, which is the standard way to configure Autofac for WebApi. Include nuget pacakge Autofac.Integration.WebApi var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterType<MyType>(); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver;

ASP.NET Core 依赖注入(DI)

二次信任 提交于 2020-05-01 18:22:29
  ASP.NET Core的底层设计支持和使用依赖注入。ASP.NET Core 应用程序可以利用内置的框架服务将服务注入到启动类的方法中,并且应用程序服务也可以配置注入。由ASP.NET Core 提供的默认服务容器提供了最小功能集,并不是取代其他容器。    1.浅谈依赖注入   依赖注入(Dependency injection,DI)是一种实现对象和依赖者之间松耦合的技术,将类用来执行其操作的这些对象以注入的方式提供给该类,而不是直接实例化依赖项或者使用静态引用。一般情况,类会通过构造函数声明器2依赖关系,允许他们遵循显示依赖原则。这种方法称为“构造函数注入”。   当类的设计使用DI思想时,他们的耦合更加松散,因为他们没有对他们的合作者直接硬编码的依赖。这遵循“依赖倒置原则”,其中指出,高层模块不应该依赖于底层模块:两者都依赖于抽象。   类要求在他们构造时向其提供抽象(通常是接口),而不是引用特定的实现。提取接口的依赖关系和提供接口的实现作为参数也是“策略设计模式”的一个示例。   当一个类被用来创建类及其相关的依赖关系时,这个成为容器(containers),或者称为控制反转(Inversion of Control, IoC)容器,或者依赖注入容器。容器本质上是一个工厂,负责提供向它请求的类型的实例。如果一个给定类型声明它具有依赖关系

在WebApi 中使用AutoFac

末鹿安然 提交于 2020-05-01 17:35:16
参考文档 https://www.cnblogs.com/htsboke/p/10956807.html https://www.cnblogs.com/lenmom/p/8510572.html 在WebApi项目中使用AutoFac,结构如下: 首先在Api项目当中引用AutoFac包,如下图所示: 仓储类: 1 public interface IUsersRepository 2 { 3 int GetUserIsExists(UsersEntity criteria); 4 5 } 6 7 8 public class UsersRepository : IUsersRepository 9 { 10 Logger log = LogManager.GetLogger( " UsersRepository " ); 11 12 /// <summary> 13 /// 获取用户是否存在 14 /// </summary> 15 /// <param name="criteria"></param> 16 /// <returns></returns> 17 public int GetUserIsExists(UsersEntity criteria) 18 { 19 string sql = "。。。。 " ; 20 try 21 { 22 //查询sql代码,此处省略

ABPvnext源码分析 (一):核心模块Abp.Core

倖福魔咒の 提交于 2020-04-28 03:01:22
写在前面: ABPvnext(v2)在github开源地址为https://github.com/abpframework/abp,该项目是ABP项目基于netcore版本的第二代实现。他基于netcore3.0,相对于v1,更轻量级,面向微服务等现代网络架构,是学习netcore,学习架构设计的很好的素材。 本系列记录ABPvnext源码学习的详细内容,基于的版本是v1.0正式版。 核心模块(Core模块):ABP的Core模块为Volo.Abp.Core程序包,可以通过nuget安装使用,大家也可以在github查看其源码(framework/src/Volo.Abp.Core)。Core模块整体看来分为两大部分。一部分为一些基础的帮助函数,大部分为无依赖的独立的扩展方法。由于这部分代码相互牵扯很少,相信读者很容易看懂,本篇直接忽略。本篇关注的是另一部分, DI封装以及相关的一些基础功能(这块代码主要在framework/src/Volo.Abp.Core/Volo/)。 Core模块DI相关部分主要是实现了模块管理功能,其主要参考了Autofac模块管理的实现。我想之所以重新实现一遍没有直接依赖Autofac是为了和具体的DI依赖库相隔离,做一层中间层(ABP的DI实现)。代码的其他部分依赖于中间层而不依赖于Autofac

Asp.NetCore3.1版本的CodeFirst与经典的三层架构与AutoFac批量注入

余生长醉 提交于 2020-04-27 19:11:35
Core3.1 CodeFirst与AutoFac批量注入(最下面附GitHub完整 Demo,由于上传网速较慢,这里就直接压缩打包上传了) ===Core3.1 CodeFirst 数据库为远程阿里云Linux服务器中的MariaDB 1:新增各个class,以及表将来的字段命名,是否主键,外键等约束( Student表中漏掉了Cid外键字段,需要补上 ) 2:创建Student110DbContent类并继承DbContent,在里面覆写OnConfigrution(...)方法,并添加数据库连接字符串 3:在Student110DbContent类里面添加 对应的DbSet<youclass>; 4:添加想要的NuGet包 Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design Install-Package Pomelo.EntityFrameworkCore.MySql 5:add-migration first-v1.0 (这个是你自己的版本号) 6:update-database 成功之后

NET Core3.1 基于AutoFac 的AOP

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-27 19:09:22
1.AOP的概念 AOP是Aspect Oriented Programing的缩写,中文翻译为面向切面编程,是通过预编译方式和运行期 动态代理 实现程序功能的统一维护的一种技术。 利用AOP可以对业务逻辑的各个部分进行隔离,使业务逻辑各部分之间的耦合度低,提高程序的可重用性,同时提高开发的效率。 2.使用场景 日志功能 验证功能 异常处理 3.和mvc过滤器(Filter)的不同 Filter 是在HTTP层面的拦截 AOP的动态代理(DynamicProxy):可以用于业务层(server),在Action执行前,执行后拦截处理 4、基于AutoFac使用AOP 上一节已经引入了 Autofac.Extras.DynamicProxy (Autofac的动态代理,它依赖Autofac,所以可以不用单独引入Autofac) 、Autofac.Extensions.DependencyInjection (Autofac的扩展)所以就不用引入了 1、在项目中建AOP文件,添加 BlogLogAOP类 继承 IInterceptor 实现接口方法 我的项目server层全部方法是异步的所以用了异步 全部代码如下: /// <summary> /// 拦截器BlogLogAOP 继承IInterceptor接口 /// </summary> public class

深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)

孤街浪徒 提交于 2020-04-27 03:23:34
相关文章: 深入理解net core中的依赖注入、Singleton、Scoped、Transient(一) 深入理解net core中的依赖注入、Singleton、Scoped、Transient(二) 深入理解net core中的依赖注入、Singleton、Scoped、Transient(三) 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四) 一、什么是依赖 注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖 当一个类需要另一个类协作来完成工作的时候就产生了依 赖 。比如我们在AccountController这个控制器需要完成和用户相关的注册、登录 等事情。其中的登录我们由EF结合Idnetity来完成,所以我们封装了一个EFLoginService。这里AccountController就有一个ILoginService的依 赖 。 这里有一个设计原则:依 赖 于抽象,而不是具体的实现。所以我们给EFLoginService定义了一个接口,抽象了LoginService的行为。 1.2 什么是注入 注入体现的是一个IOC(控制反转的的思想)。在反转之前

ASP.NET MVC学习目录

冷暖自知 提交于 2020-04-27 03:23:12
一、ASP.NET MVC原理详解 1、了解MVC架构模式 3、学习ASP.NET MVC的必备语言知识 4、MVC中的razor语法详解 5、ASP.NET MVC路由系统机制详细讲解 6、ASP.NET MVC输出生成Url链接详解 7、自定义ASP.NET MVC路由系统截获MVC的路由请求 8、ASP.NET MVC使用Area区域,使用功能模块清晰明了 9、ASP.NET MVC的Controller介绍 10、ASP.NET MVC的Controller接收输入详解 11、ASP.NET MVC的Controller响应输出详解 12、ASP.NET MVC的Filter过滤器详解 13、ASP.NET MVC的Razor视图View详解教程 14、Action参数绑定Model Binding详解 15、自定义ASP.NET MVC Model绑定系统 16、深入ASP.NET MVC Model验证-使用.NET验证特性类指定Mode验证规则 二、ASP.NET MVC高手进阶 2.1 MVC的AOP相关 1、AOP实践--ASP.NET MVC 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁 2、AOP实践--利用MVC5 Filter实现登录状态判断 2.2 MVC中的IOC相关 1、什么是ASP.NET MVC的依赖注入(IoC

把旧系统迁移到.Net Core 2.0 日记(3)

久未见 提交于 2020-04-27 03:22:58
关于DI 依赖注入, 转载这篇文章, 写得很好的. ----------------------------- DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚。另外再介绍一下.NET Core的DI实现以及对实例生命周期的管理(这个是经常面试会问到的问题)。最后再给大家简单介绍一下在控制台以及Mvc下如何使用DI,以及如何把默认的Service Container 替换成Autofac。 一、什么是依赖注入 1.1 依赖 1.2 什么注入 为什么反转 何为容器 二、.NET Core DI 2.1 实例的注册 2.2 实例生命周期之单例 2.3 实例生命周期之Tranisent 2.4 实例生命周期之Scoped 三、DI在ASP.NET Core中的应用 3.1 在Startup类中初始化 3.2 Controller中使用 3.3 View中使用 3.4 通过HttpContext来获取 四、如何替换其它的Ioc容器 一、什么是依赖 注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖

了解ASP.NET Core 依赖注入,看这篇就够了

谁说胖子不能爱 提交于 2020-04-27 03:09:10
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚。另外再介绍一下.NET Core的DI实现以及对实例生命周期的管理(这个是经常面试会问到的问题)。最后再给大家简单介绍一下在控制台以及Mvc下如何使用DI,以及如何把默认的Service Container 替换成Autofac。 一、什么是依赖注入 1.1 依赖 1.2 什么注入 为什么反转 何为容器 二、.NET Core DI 2.1 实例的注册 2.2 实例生命周期之单例 2.3 实例生命周期之Tranisent 2.4 实例生命周期之Scoped 三、DI在ASP.NET Core中的应用 3.1 在Startup类中初始化 3.2 Controller中使用 3.3 View中使用 3.4 通过HttpContext来获取 四、如何替换其它的Ioc容器 一、什么是依赖 注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖 当一个类需要另一个类协作来完成工作的时候就产生了依 赖 。比如我们在AccountController这个控制器需要完成和用户相关的注册、登录