在公司的某项目中使用Castle框架作为IOC容器使用,而实现AOP的注入,是Castle.DynamicProxy的核心能力.
项目与其他厂商的接口是基于WCF发布的restful接口.
开发时,都是使用模拟器,
可以使用Castle.DynamicProxy实现WCF接口模拟,这是AOP的典型应用:
1.实现通用的拦截器,对请求数据进行格式校验,并读取配置的应答报文进行应答
![](http://images.cnitblog.com/blog/46803/201411/072043315814285.jpg)
2.在IOC容器组件注册时,注入拦截器到接口对象
![](http://images.cnitblog.com/blog/46803/201411/072043489243787.jpg)
3.使用Castle.DynamicProxy 框架动态生成WCF接口的代理类(核心代码)
![](http://images.cnitblog.com/blog/46803/201411/072044150651268.jpg)
动态生成代理类后,一定要保存到bin目录,否则WCF框架会找不到对象引用~
如果接口改动了,那么需要手动删除动态生成的dll
4.通过接口与代理类发布WCF服务
![](http://images.cnitblog.com/blog/46803/201411/072044385818749.jpg)