共计 2 篇文章

Castle Windsor 的动态代理类如何获取实际类型

问题 在实际开发过程当中我们可能会针对某些类型使用动态代理技术(AOP),注入了一些拦截器进行处理,但是一旦某个类型被动态代理了,那么就会生成一个代理类。这个时候在该类内部使用 GetType() 方法获取到的 Type 类型并不是实际类型的 Type,而是代理类的 Type。 解决 那么我们如何在代理类当中获取到具体类型的 Type 呢?其实 Castle 给我们提供了一个工具类,叫做 ProxyUtil ,可以使用该工具类来获取到代理类所拦截的具体类型,下面的代码就是具体的使用方法。 DEMO ...

C# 当中的 AOP 实现,函数式编程

AOP的定义就是,面向切面编程。 可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,提高代码的灵活性和可扩展性,AOP可以说也是这种目标的一种实现。 它的主要功能就是将业务逻辑代码当中的公用代码提取出来,在需要的地方进行注入即可,这样能够将这些行为从逻辑代码当中分离开来,建立良好的代码体系。 举个栗子: public bool InsertCustomer(string firstName, string lastName, int age, Dictionary<string, string> ...