C#调用方法时获取方法名、类名、命名空间

  1. 创建被调用的类:
csharp 复制代码
using System;
using System.Diagnostics;
using System.Reflection;

namespace Test
{
    public class Util
    {
        public void GetName()
        {
            Console.WriteLine("被调用者信息:");
            Type t = GetType();
            Console.WriteLine(t.Name);
            Console.WriteLine(t.FullName);
            

            StackTrace stackTrace = new StackTrace(true);
            MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();

            Console.WriteLine(MethodBase.GetCurrentMethod().DeclaringType.Namespace);
            Console.WriteLine(MethodBase.GetCurrentMethod().DeclaringType.FullName);
            Console.WriteLine(MethodBase.GetCurrentMethod().Name);

            Console.WriteLine("\n调用者信息:");
            Console.WriteLine(methodBase.DeclaringType.Namespace);
            Console.WriteLine(methodBase.DeclaringType.Name);
            Console.WriteLine(methodBase.Name);
        }
    }
}
  1. 创建调用者,也就是Main函数
csharp 复制代码
using System;
using Test;

namespace TestCSharp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var u = new Util();
            u.GetName();
            Console.ReadLine();
        }
    }
}
  1. 输出结果

    被调用者信息:
    Util
    Test.Util
    Test
    Test.Util
    GetName

    调用者信息:
    TestCSharp
    Program
    Main

参考:

https://blog.csdn.net/weixin_45581482/article/details/117032083

相关推荐
superlls29 分钟前
(计算机网络)JWT三部分及 Signature 作用
java·开发语言·计算机网络
★YUI★35 分钟前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
一只鲲1 小时前
56 C++ 现代C++编程艺术5-万能引用
开发语言·c++
liulilittle2 小时前
.NET反射与IL反编译核心技术
开发语言·数据库·c#·.net·反射·反编译·il
月巴月巴白勺合鸟月半2 小时前
Teams Bot机器人实时语音识别的多引擎的处理
机器人·c#
扛麻袋的少年2 小时前
6.Kotlin的Duration类
android·开发语言·kotlin
Tony Bai3 小时前
泛型重塑 Go 错误检查:errors.As 的下一站 AsA?
开发语言·后端·golang
hixiong1234 小时前
C# 编写一个XmlToDota的转换工具
开发语言·人工智能·yolo·c#
hqxstudying4 小时前
JAVA限流方法
java·开发语言·安全·限流
用户3721574261354 小时前
C# 高保真 Word 转 HTML 实战指南
c#