zoukankan      html  css  js  c++  java
  • 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,这就是利用反射原理调用指定方法,是不是感觉瞬间简化多了呢!

  • 相关阅读:
    The Dole Queue
    [ACM] 九度OJ 1553 时钟
    秘密:之所以不搞军事同盟,俄罗斯
    炮塔郝梦主solo
    男性在下一100层【第三层】——高仿手机银行client接口
    C# 它 抽象类和接口
    PO经批准的订单API
    XDU 1284 寻找礼物
    android JSON数据格式 解析
    select的种种取值
  • 原文地址:https://www.cnblogs.com/duanjt/p/5382610.html
Copyright © 2011-2022 走看看