[EntLib]微软企业库 5.0 学习之路——第十步、使用 Unity 解耦你的系统—PART4——Unity&PIAB
在前面几篇有关 学习的文章中,我对 的一些常用功能进行介绍,包括: 的基本知识、管理对象之间的关系、生命周期、依赖注入等,今天则是要介
绍 的另外一个重要功能——拦截()。
以下是本文所要介绍的内容:
、 与 的关系。
、使用 来接管 的功能实现。
一、Unity 与 PIAB 的关系
中的 可以通过 的 或独立的 ()来实现,这些具体的实现没有包含在 本身的类库中,而独立放在
这个类库中,想深入了解的朋友可以查看下这个类的具体源代码。今天介绍的则是 与企业库内置的 模块的使用。
在我看来, 就像是 模块的一个通用封装,在 中包含了各种常用的 (匹配规则)与 (调用处
理程序),其中各种 都是实现 ,而 其定义与
! 类似的。所以由于 中已经内置好了各种常用的功能,我们只需按照我们的需求调用既可(可参看:内置
介绍和自定义 "),如果需要有特殊的逻辑也只需自己定义具体的 既可(可参看:建立自定义 实现用户操作
日志记录),当然这些都是建立在 的基础上的,如果你不想通过 来实现 # 拦截处理的话,你就可以直接实现 中的 ! 来进行
具体的业务处理,这个在后面的文章中会介绍到。
其实查看过 模块源码的朋友就可以发现,其实 本质上都是依赖于 模块,其本身没有具体的实现,其具体实现都包含在
下(包括 与 ),有兴趣的朋友可以查看下。由于 依赖于 ,所以我们完全可
以通过 来接管原有 的所有功能(包括各种配置信息)。
二、使用 Unity 来接管 PIAB 的功能实现
在建立自定义 实现用户操作日志记录一文中我已经实现好了一个自定义的 (如不了解可以先查看下 相关的文章),不过表示层的
具体调用还是通过 的 来获取具体对象,而现在我就要通过 Unity 来接管原来 PIAB 的这些对象创建,这样极大程度的统一了对象创建
与依赖管理。
我这边还是通过代码及配置 种方式来实现 接管 的功能,首先是代码的形式,代码配置相对来说比较繁琐,见如下代码: