一个高效反射类
发布时间:2020-12-16 08:58:49 所属栏目:asp.Net 来源:网络整理
导读:1.项目中有需要用到反射的地方,仔细研究了下反射,其效率并不高 还好微软提供了IL的编程方法,自己实现了一个高效反射类 ? 下面举些常用例子: 我们反射出.NETFramework中的一个未公开的类 SessionStateUtility 并调用其私有方法 Deserialize 1 public stat
1.项目中有需要用到反射的地方,仔细研究了下反射,其效率并不高 还好微软提供了IL的编程方法,自己实现了一个高效反射类 ? 下面举些常用例子: 我们反射出.NETFramework中的一个未公开的类 SessionStateUtility 并调用其私有方法 Deserialize 1 public static SessionStateStoreData Deserialize(HttpContext context,Stream stream) 2 { 3 DynamicMethodPrivoder _sessionStateUtility=new DynamicMethodPrivoder(typeof(SessionStateUtility),null); 5 return _sessionStateUtility.MethodInvoke("Deserialize",context,stream) as SessionStateStoreData; 6 } 注意:由于DynamicMethodPrivoder.Deserialize 是静态方法? 所以DynamicMethodPrivoder构造的第二个参数为null ? 我们反射出 HttpContext下的一个 HttpSessionStateContainer 对象中 的私有字段 _sessionItems并获取它的值 SessionStateStoreData GetSessionStoreDate(HttpContext context) 3 IHttpSessionState container = SessionStateUtility.GetHttpSessionStateFromContext(context); 4 Type _containerType = typeof(HttpSessionStateContainer); 5 DynamicMethodPrivoder _containerPrivoder = new DynamicMethodPrivoder(_containerType,container); 6 ISessionStateItemCollection sessionItems = _containerPrivoder.Field(_sessionItems") ISessionStateItemCollection; 7 HttpStaticObjectsCollection staticObjects = container.StaticObjects; 8 return SessionStateStoreData(sessionItems,staticObjects,container.Timeout); 9 }
? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 最容易与ASP.NET集成的视频播放器?
- asp.net-mvc – 使用部分视图进行MVC分页
- asp.net – 在代码中获取页面的绝对URL
- ASP.Net MVC 2中的多个环境
- asp.net-mvc – 在.NET MVC应用程序中“深入挖掘”角色的距
- asp.net-mvc – dropzone.js和ASP.NET MVC文件发布是否为空
- pdf-generation – 如何在ASP.NET中创建PDF
- asp.net-mvc – ASP.NET MVC页面/子页面路由
- asp.net-mvc – 是否可以在Orchard CMS中使用剃刀布局并绕过
- 如何保护经典ASP ASPSESSIONID cookie?
推荐文章
站长推荐
- asp.net-mvc – ASP.Net MVC和WebAPI加密
- asp.net-mvc – 无Cookie会话和跨站点表单帖子
- asp.net-mvc-4 – WebAPI如何指定控制器将到达哪
- asp.net – 命名空间’System.Web’中不存在类型
- asp.net – 我应该有多少DBContext
- asp.net – WebAPI Empty 500错误
- 你如何在ASP.NET中配置httpOnlyCookies?
- asp.net-mvc-4 – MVC4 MEF插件和控制器命名空间
- asp.net-mvc – 如何用Fluent语法编写HtmlHelper
- 根据ASP.NET中的角色设置auth cookie超时长度
热点阅读