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 + "\n";
            //取得当前方法类全名
            str += "类名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "\n";
            //取得当前方法名
            str += "方法名:" + System.Reflection.MethodBase.GetCurrentMethod().Name + "\n";
            str += "\n";

            StackTrace ss = new StackTrace(true);
            MethodBase mb = ss.GetFrame(1).GetMethod();
            //取得父方法命名空间
            str += mb.DeclaringType.Namespace + "\n";
            //取得父方法类名
            str += mb.DeclaringType.Name + "\n";
            //取得父方法类全名
            str += mb.DeclaringType.FullName + "\n";
            //取得父方法名
            str += mb.Name + "\n";
            return str;
        }

        public static void Main()
        {
            Console.WriteLine(GetMethodInfo());

            Console.ReadKey();
        }
    }
}
时间: 2024-10-13 22:23:30

c# 获取方法所在的命名空间 类名 方法名的相关文章

C#基础-获得当前程序的 空间名.类名.方法名

string typeName = this.GetType().ToString();//空间名.类名 string typeName = this.GetType().Name;//类名 new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name 方法名 C#基础-获得当前程序的 空间名.类名.方法名

C#控制台 typeof获取一个类的命名空间.类名

1 code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApplication10 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Type tp = type

.NET 中获取调用方法名

在写记录日志功能时,需要记录日志调用方所在的模块名.命名空间名.类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下: 需要添加相应的命名空间: using System; using System.Diagnostics; using System.Reflection; 如果仅是获取当前方法名,可以使用如下代码: public static void WriteSysLog(int level, string content) { Metho

[No000085]C#反射Demo,通过类名(String)创建类实例,通过方法名(String)调用方法

using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; class test { public void Method()//1 { Console.WriteLine("1:__" + "Method调用成功!"); } public void Method(string str)//2 { Cons

获取java中当前运行代码类名,行号,方法名

最近项目在线上出现一个报加密控件输入为空的bug,由于IOS,Android,web端都报,但是没找到原因,因为是偶现,所以为了捕捉这个问题,做出要我们把报错信息传给后台,所以就写一下获取的方法.1.获取方法名:public static String getCurrentMethodName() { int level = 1; StackTraceElement[] stacks = new Throwable().getStackTrace(); String methodName = s

Java运行时获取当前运行代码类名、方法名

/*    * 1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 *  * 2. 获取调用者.当前方法名 *   [1]获得调用者的方法名, 同new Throwable *         String _methodName = new Exception().getStackTrace()[1].getMethodName(); *   [0]获得当前的方法名, 同new Throwable *         String _t

批处理文件中获取当前所在路径的几种方法

原文:批处理文件中获取当前所在路径的几种方法 @echo off setlocal EnableDelayedExpansion echo 当前正在运行的批处理文件所在路径:!cd! pause @echo off echo 当前目录是:%cd% pause @echo off :: set "abc=%cd%" echo 当前正在运行的批处理文件所在路径:%~dp0 pause @echo off echo 当前的盘符及路径:%~dp0 echo 当前的盘符及路径的短文件名格式:%~

根据类名,方法名,反射调用类的方法

/** * 根据类名,方法名,反射调用类的方法 * @方法名称: getResult * @描述: TODO * @param className * @param methodName * @param params * @return */ public static String getResult(String className,String methodName,Map<String,Object> params){ String result = null; try{ Objec

避免使用PHP保留字作为常量、类名和方法名,以及命名空间的命名

http://php.net/manual/zh/reserved.keywords.php 这些词语在 PHP 中有着特殊的意义.它们中有些像是函数,有些像是常量……但是它们不是的,它们只是语言结构的一部分.不能使用它们的任何一个作为常量.方法名或是类名.但是可以将它们作为变量名使用,不过这样会导致混淆. 从PHP7.0.0开始这些关键字允许被用作类的属性.常量以及类的方法名,或者接口名和traints名,除了class不能被用作常量名.PHP 关键词 __halt_compiler()