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

相关推荐
虫小宝10 分钟前
高佣金的返利平台性能压测:从单接口到全链路的性能瓶颈分析
c#·linq
于越海14 分钟前
材料电子理论核心四个基本模型的python编程学习
开发语言·笔记·python·学习·学习方法
代码方舟19 分钟前
Java后端实战:构建基于天远手机号码归属地核验的金融级风控模块
java·大数据·开发语言·金融
wuk99825 分钟前
基于MATLAB实现栅格地图全覆盖移动路径规划
开发语言·matlab
幽络源小助理1 小时前
PHP虚拟商品自动发卡系统源码 – 支持文章付费阅读与自动发货
开发语言·php
故事不长丨1 小时前
C#集合:解锁高效数据管理的秘密武器
开发语言·windows·c#·wpf·集合·winfrom·字典
superman超哥1 小时前
Rust 内部可变性模式:突破借用规则的受控机制
开发语言·后端·rust·rust内部可变性·借用规则·受控机制
豆沙沙包?1 小时前
2026年--Lc329-735. 小行星碰撞(栈)--java版
java·开发语言
weibkreuz1 小时前
收集表单数据@10
开发语言·前端·javascript
liulilittle2 小时前
XDP VNP虚拟以太网关(章节:一)
linux·服务器·开发语言·网络·c++·通信·xdp