随笔分类 -  Ioc

摘要:Autofac前面写了那么多篇, 其实就是为了今天这一篇, Autofac在MVC和WebApi中的应用. 一、目录结构 先看一下我的目录结构吧, 搭了个非常简单的架构, IOC(web), IBLL, BLL, IDAL, DAL, Helper 我里面都是为了实现Say方法的. ITestDal 阅读全文
posted @ 2017-01-05 14:24 Sniper_ZL 阅读(765) 评论(1) 推荐(1)
摘要:实例生命周期决定在同一个服务的每个请求的实例是如何共享的。 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用域) 或者在某种上下文环境中的单例。比如 一个线程 或者一个HTTP请求 (per lifetime 阅读全文
posted @ 2016-12-29 17:01 Sniper_ZL 阅读(2026) 评论(0) 推荐(0)
摘要:方法注入, 其实就是在注册类的时候, 把这个方法也注册进去. 那么在生成实例的时候, 会自动调用这个方法. 其实现的方法, 有两种. 准备工作: 1. 方法一 - 常规方法 执行时机 : 首先执行的, 肯定是Person的构造函数, 然后回去调用这个方法, 调用过程中, 发现了IAnimal 参数, 阅读全文
posted @ 2016-12-29 15:31 Sniper_ZL 阅读(1304) 评论(0) 推荐(0)
摘要:属性注入不同于通过构造函数方式传入参数. 这里是通过注入的方式, 在类创建完毕之后, 资源释放之前, 给属性赋值. 这里, 我重新弄一些类来演示这一篇吧. 1. 一般方法 这种方法, 不止可以注入属性, 还可以给字段赋值 2. 反射的方式 这里需要注意一点, 由于ClassC中有ClassD格式的属 阅读全文
posted @ 2016-12-29 11:42 Sniper_ZL 阅读(7598) 评论(0) 推荐(0)
摘要:Autofac在提供之前那些方法的时候, 同时提供了五个事件, 这一篇就看一下这几个事件. 一、五大事件 看一下结果: 额, 首先我得说明一下, 输出的顺序和我写事件的顺序是没有关系的, 不是说, 我事件写在前面, 输出就在前面. 从这张图上, 能看到, 对象创建时, 构造函数的调用时在中间的. 其 阅读全文
posted @ 2016-12-15 16:24 Sniper_ZL 阅读(667) 评论(0) 推荐(0)
摘要:通过程序集扫描, 能够自动注册符合规则的类型. 这种方式, 很方便. 这一篇就介绍下程序集扫描吧. 一、扫描 其实前面已经介绍过, 这种方式. 不过并不全. 先看一个之前的方式: 二、过滤 如果我并不想注册那么多的类型, 但是又想通过程序集的注册方式去注册, 那怎么办呢? 1. Where过滤 只需 阅读全文
posted @ 2016-12-15 14:00 Sniper_ZL 阅读(1619) 评论(0) 推荐(0)
摘要:从容器中的可用服务中, 选取一个构造函数来创造对象, 这个过程就是自动装配. 一、选择构造函数 默认情况下, autofac会使用无参构造函数, 去创建对象. 我将Person类稍微修改了下. 但是也可以通过传入参数的方式, 去自动选择使用哪一个构造函数. 还可以在注册的时候就指定使用哪一个构造函数 阅读全文
posted @ 2016-12-13 17:15 Sniper_ZL 阅读(672) 评论(0) 推荐(0)
摘要:上一篇中, 留了一个小问题,在一个接口下面, 注册多个类, 并能正常获取. 之前的方式是不能做到的, 在服务中, 有一种实现方式是可以的. 一、服务 1. 类型 - 描述服务的基本方法 上一篇其实使用到过这种方式, 只是并没有拿出来讲. 这个方法, 就可以将IAnimal类型的服务与Dog的组件连接 阅读全文
posted @ 2016-12-13 14:39 Sniper_ZL 阅读(564) 评论(0) 推荐(0)
摘要:快到年终了, 最近项目比较悠闲, 就想总结下, 项目中所使用到的一些技术, 以及使用方法. 之前有写过Dapper以及Dapper的一个扩展, 这些也是项目中使用过的. 算是一个温故而知新吧. 代码: 一、类型注册 类型的注册, 使用的方法是container.Resolve<Type>()和con 阅读全文
posted @ 2016-12-13 11:21 Sniper_ZL 阅读(597) 评论(0) 推荐(0)