这里主要介绍使用castle这个动态代理,在.net一些开源的框架里可以找到它的影子,就连微软的rchard也是使用这个进行方法拦截等可以基于这个进行方法拦截,在这个方面PostSharp算是比较好用的,可以跟使用属性一样使用没有代码侵入,可是这个是收费,postsharp使用的是运行时注入,这个在之前的文章已经说过这里不再重复说,这里就直接进入正题. 这里介绍先DynamicProxy的方法拦截功能先来个例子 先定义一个类 public class MyClass : IMyClass { p
以下Demo代码基于 .NET Core 演示了Postsharp的基本使用方法,稍作修改(反射部分有些许差异)也适用于.NET Framework. 更多高级使用方法详见官方文档.http://samples.postsharp.net/ 代码(注意,这段代码编译后会有警告,解决方案见文末): using System; using System.Linq; using PostSharp.Aspects; using PostSharp.Serialization; namespace Ne
MEF是微软的一个ioc框架,使用非常方便,我们只需要在需要导出的类上标记[Export],在需要使用的地方[import]就可以使用了.现在我们扩展MEF,在其装配生成实例时,使用Castle DynamicProxy对其生成透明代理. 我们先实现一个拦截器,并且继承Attribute基类,这个我们可以将这个拦截器作为类的特性来使用. using Castle.DynamicProxy; using System; using System.Collections.Generic; using