我有两个类,A类和B类。这两个类都位于两个不同的名称空间中。 我从类A调用类B的静态方法,然后如何在类B的被调用静态方法中获得类A及其名称空间的完整信息?
我不想在A类中添加任何代码 但是可以在B类中添加任何内容。
答案 0 :(得分:5)
答案 1 :(得分:3)
您应该在A
对象上使用GetType()
方法。
namespace nmspA {
public class A{
private void DoSomething(){
B.Foo(this);
}
}
}
namespace nmspB {
public class B {
public static void Foo(A a){
Debug.Write(a.GetType()); // Will write : "nmspA.A"
}
}
}
答案 2 :(得分:3)
obj.GetType().FullName;
或
typeof(AClass).FullName;
答案 3 :(得分:2)
如何将A类作为参数传递给B类?像:
public class A{
public void CallB(){
ClassB.MyMethod(this);
}
}
public static class B {
public static void MyMethod(A a){
// get info about class a here.
}
}
当然,如果您不想将对象作为参数传递,也可以查看反射选项。