可能重复:
C#中的反射:如何获取调用方法的名称和类型?
假设我有两个类:
public class Foo {
public Foo() {
Bar.Pirate();
}
}
public static class Bar {
public static void Pirate() {
Type callingClassType = ...
}
}
在Pirate()
中,如何获取调用Pirate()
的类(Foo
)的Type
?
您无法有效地获得它。作为设计的一个要点,我认为最好将调用类类型传递到Pirate方法中。
如果你不能将类类型作为参数传递,那么你可以从System.Diagnostics命名空间中的StackTrace类中获得调用类型,但如果我的内存是正确的,那么使用它是一个相当昂贵的类。