相关疑难解决方法(0)

如何找到调用当前方法的方法?

登录C#时,如何学习调用当前方法的方法的名称?我知道所有这些System.Reflection.MethodBase.GetCurrentMethod(),但我想在堆栈跟踪中向下迈出一步.我考虑过解析堆栈跟踪,但我希望找到一种更清晰,更明确的方法,比如Assembly.GetCallingAssembly()方法.

.net c# logging system.diagnostics stack-trace

465
推荐指数
11
解决办法
21万
查看次数

C#从Inside基类中获取派生类型的名称

我正在解决在基类中处理鼠标事件的问题.由于断点不能很好地解决鼠标事件的故障,我想在事件处理程序中添加一些调试输出.但是,对于我来说,在调试信息中包含实际派生类的名称非常重要,因为基类中的事件处理代码由大量派生类共享,并且只有某些派生类出现问题.

我试过使用this.GetType().Name但这只是返回base类的类型.我当然可以开始修改类,比如说,将派生类传递type给它可以存储它的基类构造函数,但这显然只是一个临时需要的很多变化.有没有一种简单的方法从基类中获取派生类的类型?

c#

21
推荐指数
2
解决办法
2万
查看次数

如何获取包含调用当前方法的方法的类的名称?

我有一个要求,我需要知道类的名称(ApiController),它有一个方法(GetMethod),由另一个类(OtherClass)的另一个方法(OtherMethod)调用.

为了帮助解释这一点,我希望下面的伪代码片段有所帮助.

ApiController.cs

public class ApiController
{
    public void GetMethod()
    {
        OtherMethod();
    }
}
Run Code Online (Sandbox Code Playgroud)

OtherClass.cs

public class OtherClass()
{
    public void OtherMethod()
    {
        Console.WriteLine(/*I want to get the value 'ApiController' to print out*/)
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 我看过如何找到调用当前方法的方法?答案将获得调用方法(OtherMethod),但不是具有该方法的类(ApiController)
  • 我尝试[CallerMemberName]并使用StackTrace属性,但这些没有得到方法的类名

c#

21
推荐指数
3
解决办法
1835
查看次数

标签 统计

c# ×3

.net ×1

logging ×1

stack-trace ×1

system.diagnostics ×1