李茂林,外链推广,水星领航员第二季
在实际开发过程当中我们可能会针对某些类型使用动态代理技术(aop),注入了一些拦截器进行处理,但是一旦某个类型被动态代理了,那么就会生成一个代理类。这个时候在该类内部使用 gettype()
方法获取到的 type
类型并不是实际类型的 type
,而是代理类的 type
。
那么我们如何在代理类当中获取到具体类型的 type
呢?其实 castle 给我们提供了一个工具类,叫做 proxyutil
,可以使用该工具类来获取到代理类所拦截的具体类型,下面的代码就是具体的使用方法。
demo 代码:
/// <summary> /// 获得实例对象的真实类型 /// </summary> /// <param name="instance">待获取类型的实例对象</param> /// <returns>实例对象的真实类型</returns> public static type getproxyclassrealtype(this object instance) { type realtype; if (proxyutil.isproxy(instance)) { realtype = proxyutil.getunproxiedtype(instance); } else { realtype = instance.gettype(); } return realtype; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论