上文中介绍了Java中的动态代理(http://blog.csdn.net/tanzhangwen/article/details/47725967),那么如果我想要用C#实现类似的功能该如何处理呢?
C#中动态代理
关于C#实现类似动态代理的方法,已经有一些总结,比如(http://joewalnes.com/2004/02/12/how-to-do-dynamic-proxies-in-c/)介绍了两种方法:
- RealProxy
- 使用Reflection.Emit (参考:http://www.codeproject.com/Articles/5511/Dynamic-Proxy-Creation-Using-C-Emit)
我这里暂时不去整理。选用简单的RealProxy作为例子,主要和Java区别在于代理类继承自RealProxy并且重载的Invoke函数参数返回值不一样,如下所示:
https://msdn.microsoft.com/en-us/libra