反射--调用方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
using Leadsoft.Common;

public partial class Reflection_reflect : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        #region Ajax程序集应用
        ////Type ty = Type.GetType("SystemYW.PM.DAO.AjaxMethod");
        //Assembly ass = Assembly.Load("SystemYW");
        //Type type = ass.GetType("SystemYW.PM.DAO.AjaxMethod");
        //Ajax.Utility.RegisterTypeForAjax(type);
        #endregion
     //方法 一
        Type te = Type.GetType("SystemYW.PM.DAO.AjaxMethod, SystemYW");//命名空间.类名, 程序序集名称
        MethodInfo mi = te.GetMethod("TestS");
        object o = Activator.CreateInstance(te);//相当于  object o = new AjaxMethod();


     //方法 二
        Assembly ass = Assembly.Load("SystemYW");//加载程序集名称
        Type type = ass.GetType("SystemYW.PM.DAO.AjaxMethod");//类名称;获取类对象
        MethodInfo minfo = type.GetMethod("TestS");//方法名称
        object obj = new object();
        obj = ass.CreateInstance("SystemYW.PM.DAO.AjaxMethod");//创建该类实例


        bool isStatic = minfo.IsStatic;
        string val = "";
        if (isStatic)
        {
            //Invoke(实例, 参数列表)
       //val = mi.Invoke(null, null).ToString(); val = minfo.Invoke(null, null).ToString();//静态方法不需要实例,所以第一个参数为null } else { val = minfo.Invoke(obj, null).ToString(); } //反射 IControl IC = (IControl)Assembly.Load("SystemYW").CreateInstance("SystemYW.PM.DAO.SavaInput"); string param = "FormID|1"; IC.Sava(param); } }

 

posted @ 2013-04-09 21:31  cqims21  阅读(167)  评论(0编辑  收藏  举报