asp.net一般处理程序利用反射定位方法
asp.net的一般处理程序我想大家用得都不少,经常会如下如下的代码:
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,这就是利用反射原理调用指定方法,是不是感觉瞬间简化多了呢!
分类:
编程语言 / ASP.NET
, 编程语言 / C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗