Unity
这个不是IoC吗
@RyanCheng: http://www.cnblogs.com/chsword/archive/2009/04/28/unity_aop.html
这篇文章比较早了,不过也说明了一些问题。
@Launcher: 你好,谢谢你的回复,你说的文章链接我看了一下,这样通过属性或者配置来实现的aop肯定是不科学的,如果插入的东西比较大,配置文件将无法维护吧。
而通过属性更不可能了,假如我是对一个dll(此时无法看到里面的代码)里的方法执行拦截,因为我无法修改源文件,所以无法去添加属性
@RyanCheng: 配置文件可以采用编码方式实现,所以你的担忧不存在。如果你跟我谈的是DLL的导出方法,我可能会吃惊一下如何拦截,但是我想你肯定是说的是托管DLL中的某个类的方法,所以,你要调用方法前,你肯定需要先创建拥有该类的方法,那么只要你使用容器来创建这个类,那就可以在调用该类的方法前先执行我们的拦截器。
你可以去MSDN上下载一个Unity来学下一下上面的示例,搞明白三种拦截器的使用场景。
配置文件有配置文件的好处,就是易修改,并不是你讲的不科学,如何管理配置文件也是一门技术,Unity也提供了让你自己实现配置存储的能力,比如可以使用数据库来存储配置,这样就可以在运行期间,通过一个管理网站来实时的调整一些行为(比如用来实现策略模式要达到的目的)。
@Launcher: 我只想问一句你用Unity做过类似Aop的开发吗?
@RyanCheng: 不知道你的类似AOP的开发是指的什么,只能告诉你我项目中大量的采用了Unity,一是为了解耦,二是为了替换设计模式的运用。至于为什么选用Unity,而不选用Castle,Spring之类的,是因为Unity功能单一,微软出品。