autofac

asp.net core 四 IOC&DI Autofac

时间秒杀一切 提交于 2020-11-28 04:32:13
其实关于IOC,DI已经有了很多的文章,但是自己在使用中还是有很多困惑,而且相信自己使用下,印象还是会比较深刻的 关于这段时间一直在学习.net core,但是这篇文章是比较重要的,也是我自己觉得学习的东西非常多的,也得到了大神的指教,在这里和大家分享下 什么是IOC? 控制反转(Inversion of Control,英文缩写为IoC)把创建对象的权利交给框架,是框架的重要特征,并非 面向对象编程 的专用术语。它包括依赖注入(Dependency Injection,简称 DI )和依赖查找(Dependency Lookup),上面的来源于百度 在做程序设计时,考虑到程序的耦合性,高扩展等问题,还是尽量需要将程序抽象化,各层的业务不再有实际的依赖关系,全部依赖于抽象也就是接口,在这种设计的情况下,接口的具体实现的创建工作最好交由IOC框架来做,或者自己扩展一个Ioc架构,完成一个构建工厂的功能,其实ico的工作就是一个产生对象的工厂,依赖于反射的技术 下面讲讲.net core,下面直接程序为core了,core框架内部包含自己的ioc框架,本文从两方面来讲,首先是自带的ioc,第二是第三方ioc(actofac),文章后面有源码 一.自带的IOC 1.定义接口以及实现 /// <summary> /// 动物类 /// </summary> public interface

.NET中的控制反转及AutoFac的简单说明

僤鯓⒐⒋嵵緔 提交于 2020-11-27 05:47:22
[TOC] <div style="color:gray;text-align:right">shanzm-2020年3月16日 02:17:35</div> <hr style="height:8px;border:none;border-top:5px double black;" /> 1.控制反转 <br> 1.1 什么是依赖? 依赖 是面向对象中用来描述类与类之间一种关系的概念。两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务,这样的两个对象之间主要体现为 依赖关系 <br> 1.2 什么是控制反转? 说反转则要先说“正转”,传统中,在程序中使用new关键字配合构造函数去创建一个对象,这就是程序主动的创建其所依赖对象,这就是“ 正转 ”。 调用者不自己创建被调用者对象,而交由第三方(容器)进行创建被调用者对象,这个过程称为 控制反转 (inversion of control, IOC )。 为什么要控制反转?控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度,便于扩展和后期维护。 <br> 1.3 什么是依赖注入? 实现控制反转的主要方式是 依赖注入 。(当然不止依赖注入这一种方法,还有依赖查找(Dependency Lookup,DL)。二者区别可参考: 维基:控制反转 ) 依赖注入具体是指:调用类

奉上简单的.Net后端开发模板

白昼怎懂夜的黑 提交于 2020-11-10 06:46:23
假定一个场景,开始做开发的你,领导走到你的面前说道:“小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你”,当时你内心读白:“CMS什么东西,还好我可以百度,但我要在哪个项目上开搞啊”,这时的领导又说道:“项目你自己建立,然后上传git就行了”,这时的你是否已经石化,本篇文章就为您提供一个快速建立后端开发的模板,作者自己总结出品,如有不妥,指正即可。 模板代码下载: https://github.com/cqhaibin/ApiTemplate.git 目标 由于搭建的只是后端开发模板,主需要满足基本要求即可。 框架结构简单 数据库支持:Mssql, Mysql 构架易于上手 支持良好的业务扩展 是一套基础开发模板 技术选型 开发语言:c# 运行时 .net Framework4.5 IoC:Autofac、Autofac.WebApi2 Dto:AutoMapper 序列化:Newtonsoft.Json Orm:FreeSql Api:Aspnet.WebApi 数据库:首先MSSQL、次先Mysql 缓存:基于List或Dictionary实现单机内存级缓存 架构分层 数据库访问层 Freesql实体定义,也就是我们常说的是数据库实体 提供dbContext上下文的方式访问 复杂的sql操作接口定义及实现,如:多表查询

【asp.net core 系列】14 .net core 中的IOC

北战南征 提交于 2020-10-28 14:49:42
0.前言 通过前面几篇,我们了解到了如何实现项目的基本架构:数据源、路由设置、加密以及身份验证。那么在实现的时候,我们还会遇到这样的一个问题:当我们业务类和数据源越来越多的时候,我们无法通过普通的构造对象的方法为每个实例进行赋值。同时,传统意义上的赋值遇到底层切换或者其他修改的时候,就需要修改大量的代码,对改变不友好。为了改变这种现状,我们基于面向接口编程,然后使用一些DI功能和IOC框架。 1. IOC和DI 先来给大家解释几个概念,IOC全称Inversion of Control,翻译过来就是控制反转,是面向对象编程的一种设计原则,用来降低代码之间的耦合度。所谓的控制反转简单来讲就是将类中属性或者其他参数的初始化交给其他方处理,而不是直接使用构造函数。 public class Demo1 { } public class Demo2 { public Demo1 demo; } 对于以上简单示例代码中,在Demo2类中持有了一个Demo1的实例。如果按照之前的情况来讲,我们会通过以下方法为demo赋值: // 方法一 public Demo1 demo = new Demo1(); // 方法二 public Demo2() { demo = new Demo1(); } 这时候,如果Demo1变成下面的样子: public class Demo1 { public