zoukankan      html  css  js  c++  java
  • C# 反射总结 获取 命名空间 类名 方法名

    一、获取 命名空间 类名 方法名

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    using System.Reflection;
    
    namespace GetMethodNameSpace
    {
        class Program
        {
            public static string GetMethodInfo()
            {
                string str = "";
                //取得当前方法命名空间
                str += "命名空间名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "
    ";
                //取得当前方法类全名
                str += "类名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "
    ";
                //取得当前方法名
                str += "方法名:" + System.Reflection.MethodBase.GetCurrentMethod().Name + "
    ";
                str += "
    ";
    
                StackTrace ss = new StackTrace(true);
                MethodBase mb = ss.GetFrame(1).GetMethod();
                //取得父方法命名空间
                str += mb.DeclaringType.Namespace + "
    ";
                //取得父方法类名
                str += mb.DeclaringType.Name + "
    ";
                //取得父方法类全名
                str += mb.DeclaringType.FullName + "
    ";
                //取得父方法名
                str += mb.Name + "
    ";
                return str;
            }
    
            public static void Main()
            {
                Console.WriteLine(GetMethodInfo());
    
                Console.ReadKey();
            }
        }
    }

     二、利用反射动态加载dll

    头部引用加:

    using System.Reflection;
    Assembly asm = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory+ "/DeclareDLL/YunDouTaxLib.dll");////我们要调用的dll文件路径
    //加载dll后,需要使用dll中某类.
    Type t = asm.GetType("namespace.classname");//获取类名,必须 命名空间+类名  
    
     //实例化类型
    object o = Activator.CreateInstance(t);
    
    //得到要调用的某类型的方法
    MethodInfo method = t.GetMethod("functionname");//functionname:方法名字
    
    object[] obj =
    {
         Parameters[0].TaxpayerName,
         Parameters[0].TaxpayerTaxCode,
         Parameters[0].CAPassword
    };
    //对方法进行调用
    var keyData = method.Invoke(o, obj);//param为方法参数object数组

    三,没有Assembly.LoadFrom 需要在程序中加引用

  • 相关阅读:
    java分页查询--oracle
    Tomcat Excel中的数据导出到页面中显示
    接口调用类3
    接口工具类2
    接口工具类
    redis 对外访问
    Spring 项目启动时执行
    scp 本地上传/下载服务器文件
    CentOS 安装 rabbitMQ
    卸载rabbitMQ
  • 原文地址:https://www.cnblogs.com/xdot/p/8651506.html
Copyright © 2011-2022 走看看