System.Reflection 使用实例

来源:互联网 发布:淘宝会员卡封面设置 编辑:程序博客网 时间:2024/06/06 04:23

using System.Reflection;/// <summary>/// 根据方法名执行方法/// </summary>/// <param name="assemblyName">程序集</param>/// <param name="nameSpace">命名空间</param>/// <param name="className">类名</param>/// <param name="funcName">方法名</param>/// <param name="param">输入参数</param>public void GetMethodResult(string assemblyName, string nameSpace, string className, string funcName, params string[] param){    try    {        Assembly asmb = null;        Type type = null;        if (assemblyName.Trim() == "") //如果使用外部引用        {            asmb = Assembly.LoadFrom(assemblyName); //调用的DLL程序集            type = asmb.GetType(string.Concat(nameSpace, ".", className));  //类类型        }        else        {            type = Type.GetType(string.Concat(nameSpace, ".", className));  //类类型        }        object dObj = Activator.CreateInstance(type);  //在本地或从远程创建对象类型(类或结构都可以)                      MethodInfo method = type.GetMethod(funcName);  //获取方法        BindingFlags flag = BindingFlags.Public | BindingFlags.Instance;   //调用方法的一些标志位,这里的含义是Public并且是实例方法,这也是默认的值        object[] parameters = new object[] { param };      //方法的输入参数        object returnValue = method.Invoke(dObj, flag, Type.DefaultBinder, parameters, null);   //取得方法返回的值    }    catch (Exception ex)    {        string ExStr = ex.Message;    }}


原创粉丝点击