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 需要在程序中加引用

  • 相关阅读:
    MongoDB安装
    前端构建工具gulp入门教程
    限制input输入类型(多种方法实现)
    【E20200105-1】Centos 7.x 下vsftpd配置文件常用配置详解
    【E20200102-1】centos 7 下vsftp的安装和配置
    【E20200101-1】Centos 7.x 关闭防火墙(firewall)和SELinux
    Linux下如何修改用户默认目录
    linux给普通用户增加ssh权限
    在IIS7中应用Application Request Routing配置反向代理
    vmware相关服务默认禁用 修改服务弹出服务拒绝访问解决办法
  • 原文地址:https://www.cnblogs.com/xdot/p/8651506.html
Copyright © 2011-2022 走看看