写在前面
在上一篇中对AspectCore进行了初步的了解,用于拦截的属性加在了具体类的方法上。
这一篇验证一下把拦截属性加在接口上,这样实现该接口的类中所对应的方法都会被拦截到;另外示例中还尝试对方法的入参进行了修改,验证了通过AspectContext可以获得当前方法的所有信息。
代码实现
using AspectCore.DynamicProxy;
using AspectCore.DynamicProxy.Parameters;
class Program
{
static void Main(string[] args)
{
ProxyGeneratorBuilder proxyGeneratorBuilder = new ProxyGeneratorBuilder();
IProxyGenerator proxyGenerator = proxyGeneratorBuilder.Build();
SampleInterface sampleInterface = proxyGenerator.CreateInterfaceProxy<SampleInterface, SampleClass>();
Console.WriteLine(sampleInterface);
var ret = sampleInterface.Foo(1);
Console.WriteLine("ret:" + ret);