C#反射:获取调用类';类型

本文关键字:类型 调用 反射 获取 | 更新日期: 2023-09-27 17:59:25

可能重复:
C#中的反射:如何获取调用方法的名称和类型?

假设我有两个类:

public class Foo {
    public Foo() {
        Bar.Pirate();
    }
}
public static class Bar {
    public static void Pirate() {
        Type callingClassType = ...
    }
}

Pirate()中,如何获取调用Pirate()的类(Foo)的Type

C#反射:获取调用类';类型

您无法有效地获得它。作为设计的一个要点,我认为最好将调用类类型传递到Pirate方法中。

如果你不能将类类型作为参数传递,那么你可以从System.Diagnostics命名空间中的StackTrace类中获得调用类型,但如果我的内存是正确的,那么使用它是一个相当昂贵的类。