上文中介绍了Java中的动态代理(http://blog.youkuaiyun.com/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/library/system.runtime.remoting.proxies.realproxy(v=vs.110).aspx

本文探讨了C#中如何实现动态代理,引用了RealProxy和Reflection.Emit两种方法,并以RealProxy为例进行说明。同时,解释了泛型函数的使用,包括类型约束和如何将类型作为参数。文章还讨论了在动态代理的Invoke方法中调用泛型函数时遇到的问题,指出C#与Java在泛型处理上的差异。
最低0.47元/天 解锁文章
451

被折叠的 条评论
为什么被折叠?



