当前位置: 首页 > article >正文

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

  1. 创建被调用的类:
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函数
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


http://www.kler.cn/a/397245.html

相关文章:

  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-
  • 【原创】java+ssm+mysql社区疫情防控管理系统设计与实现
  • 基于OpenCV的图片人脸检测研究
  • 【数据结构】线性表——栈与队列
  • 帽子矩阵--记录
  • Spring-boot 后端java配置接口返回jsp页面
  • leetcode100:相同的树
  • 前端面试笔试(三)
  • MySQL:表设计
  • Ubuntu24.04上安装和配置MariaDB
  • 内容营销专家刘鑫炜:AI搜索会让内容营销变得更容易吗?
  • html + css 自适应首页布局案例
  • 如何编译 Cesium 源码
  • 机器学习基础02_特征工程
  • 介绍一下整数在内存的储存形式(c基础)
  • 第 15 章 -Go 语言 并发编程
  • C# 常用三方库
  • 主界面获取个人信息客户端方
  • 归并排序(C语言)
  • python基础知识(四)——发送请求、接口关联
  • 问:说说SpringDAO及ORM的用法?
  • MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并--封装到存储过程中
  • Spring Boot基础教学:创建第一个Spring Boot项目
  • 背景替换大模型图像处理gradio部署服务
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件