gpt4 book ai didi

c# - 是否可以从堆栈跟踪中获取实际类型?

转载 作者:太空狗 更新时间:2023-10-30 01:26:29 26 4
gpt4 key购买 nike

我正在编写一个 ExceptionFactory 类,使用 System.Diagnostics.StackTrace

 var trace = new StackTrace(1, true);
var frames = trace.GetFrames();
var method = frames[0].GetMethod();

现在,上课

class Base
{
public void Foo()
{
//Call ExceptionFactory from here
}
}
class A : Base {}

//...

var x = new A();
x.Foo();

method.DeclaringType 将返回 typeof(Base)。但是,我需要 typeof(A)。是否有可能以某种方式获得?

method.ReflectedType 也不起作用。

最佳答案

不,因为该方法实际上是在 Base 上声明的。只要该方法未被重写,无论您是在基类还是在派生类上查询它,您总是会获得该方法的相同 MethodInfo 实例。

但是为什么首先需要其他类型呢?您的问题可能有另一种解决方案,这就是我提出这个问题的原因。

关于c# - 是否可以从堆栈跟踪中获取实际类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com