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

相关推荐
宠..18 小时前
安装 Qt VS Tool 插件
开发语言·qt
未来之窗软件服务18 小时前
幽冥大陆(三十九)php二维数组去重——东方仙盟筑基期
android·开发语言·算法·php·仙盟创梦ide·东方仙盟·东方仙盟sdk
程序猫.18 小时前
Java零基础入门:集合进阶(下)
java·开发语言
菜鸟-0118 小时前
QT:BMS_TTL
开发语言·qt
sali-tec18 小时前
C# 基于halcon的视觉工作流-章65 点云匹配-基于形状
开发语言·人工智能·算法·计算机视觉·c#
不会c嘎嘎18 小时前
【C++】深入理解多态:从用法到原理
开发语言·c++
武子康18 小时前
Java-179 FastDFS 高并发优化思路:max_connections、线程、目录与同步
java·开发语言·nginx·性能优化·系统架构·fastdfs·fdfs
缺点内向19 小时前
如何在C#中为文本内容添加行号?
开发语言·c#·word·.net
h***85619 小时前
Rust在Web中的前端开发
开发语言·前端·rust
Chasing Aurora19 小时前
Python连接云端Linux服务器进行远程 (后端开发/深度学习)时候的注意事项
linux·开发语言·python·ubuntu·ai编程