<b>前提</b>
引用以下文件
Microsoft.Practices.ObjectBuilder2.dll
Microsoft.Practices.Unity.dll
Microsoft.Practices.Unity.Configuration.dll
Microsoft.Practices.Unity.Interception.dll
Microsoft.Practices.Unity.Interception.Configuration.dll
Microsoft.Practices.Unity.StaticFactory.dll
本文中的实现类继承于IOutput接口
<b>实现效果</b>
我有两个方法可以输出字符串, 调用IOutput的实现类来输出的,如:
调用它即在Main函数中
即可,而AOP的作用是通过其它代码,向op2.Output方法执行前或执行后注入其它执行过程即最后形成的结果可能是:
这里除了箭头所指的一句外其它的都是注入进去这个方法的。
<b>定义处理代码</b>
这里我们先定义一段处理方法的代码,Unity规定它是ICallHandler的一个实现
好,下面我们来看看怎么把MyHandler与IOutput关联起来,大体有2种方法
<b>1.通过代码直接关联</b>
这种实现方式比较“硬”。
它是利用Atrribute来实现这种关联的,首先,先建一个Attribute。
然后在IOutput的实现中使用如下代码:
这里靠此Attribute就将二者关联了起来
现在执行处写:
That’s all OK.
<b>2.用配置文件处理</b>
如果用配置文件的话就不用Attribute了,所以实现的类如下
这里不使用属性来标记了,而使用配置文件,我们建一个名为Unity.xml的配置文件(配置文件长,可以后看):
最后我们来执行,要比第一种方法复杂一点:
<b>OK这时我们看到的结果就是:</b>
代码下载: