asp.net一般处理程序利用反射定位方法
2016-04-12 14:38
671 查看
asp.net的一般处理程序我想大家用得都不少,经常会如下如下的代码:
看到如上代码可能觉得没有问题,但是如果我们新增一个方法,那么就需要在ProcessRequest方法的switch中增加一个对应的映射,感觉挺麻烦的,现将ProcessRequest方法修改如下:
OK,这就是利用反射原理调用指定方法,是不是感觉瞬间简化多了呢!
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading; using System.Web; namespace MyWeb { /// <summary> /// GetMsg 的摘要说明 /// </summary> public class GetMsg : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; String fn=context.Request["fn"]; //根据参数判断执行哪一个方法 switch(fn){ case "Search": Search(context); break; case "Search": Add(context); break; } } public void Search(HttpContext context) { context.Response.Write("新增"); } public void Add(HttpContext context) { context.Response.Write("新增"); } public bool IsReusable { get { return false; } } } }
看到如上代码可能觉得没有问题,但是如果我们新增一个方法,那么就需要在ProcessRequest方法的switch中增加一个对应的映射,感觉挺麻烦的,现将ProcessRequest方法修改如下:
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; String fn=context.Request["fn"]; MethodInfo method= this.GetType().GetMethod(fn); if (method != null) { method.Invoke(this, new object[] { context }); } }
OK,这就是利用反射原理调用指定方法,是不是感觉瞬间简化多了呢!
相关文章推荐
- 尚未在 Web 服务器上注册ASP.NET 4.5。安装VS2015后的问题
- ASP.NET MVC4通过UrlRewriter配置伪静态
- asp.net 母版页使用详解
- asp.net 树TreeView 默认展开二级菜单
- AsposeWords.cs
- IIRF重写在asp.net4.0+IIS6中部分失败的解决方案
- Asp.net时间格式化的六种方法
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- ASP.NET MVC 4+ T.JPager使用
- ASP.NET创建三层架构图解详细教程
- asp.net mvc easyui datagrid使用
- ASP.NET创建三层架构图解详细教程
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- ASP.NET管线与应用程序生命周期
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
- 创建OData Service(基于ASP.NET 4.6.1, EF 6),Part I:Project initialize
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
- ASP.NET Core中的依赖注入(5): ServiceProvider实现揭秘 【总体设计 】
- asp.net 正确的使用session
- ASP.NET-常用插件集合