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

  • 相关阅读:
    Netsharp快速入门(之17) Netsharp基础功能(参照高级设置)
    Netsharp快速入门(之16) Netsharp基础功能(权限管理)
    安装 SQL SERVER PROFILER
    运用 DataContractSerializer 存储本地对象
    坑人的 try catch finally
    截图库
    Asp.Net MVC 过滤器
    Application、Session、Cookie、ViewState的特性
    Ioc 比较
    Redis 安装与配置
  • 原文地址:https://www.cnblogs.com/xdot/p/8651506.html
Copyright © 2011-2022 走看看