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

相关推荐
沐欣工作室_lvyiyi1 天前
基于Matlab的简易振动信号分析系统(论文+仿真)
开发语言·matlab·毕业设计·振动信号分析
liu****1 天前
1.模拟算法
开发语言·c++·算法·1024程序员节
数据村的古老师1 天前
Python数据分析实战:基于25年黄金价格数据的特征提取与算法应用【数据集可下载】
开发语言·python·数据分析
孔明兴汉1 天前
第一章-第三节-Java开发环境配置
java·开发语言
小王不爱笑1321 天前
Java 核心知识点查漏补缺(一)
java·开发语言·python
空空kkk1 天前
Java——类和对象
java·开发语言
沐知全栈开发1 天前
Python3 集合
开发语言
Jonathan Star1 天前
用Python轻松提取视频音频并去除静音片段
开发语言·python·音视频
Evand J1 天前
【自适应粒子滤波MATLAB例程】Sage Husa自适应粒子滤波,用于克服初始Q和R不准确的问题,一维非线性滤波。附下载链接
开发语言·matlab·卡尔曼滤波·自适应滤波·非线性
hd51cc1 天前
C++ 类的学习(四) 继承
开发语言·c++·学习