如何在C#中动态获取NameSpace和Class的名称?

时间:2011-10-26 07:39:03

标签: c#

我有两个类,A类和B类。这两个类都位于两个不同的名称空间中。 我从类A调用类B的静态方法,然后如何在类B的被调用静态方法中获得类A及其名称空间的完整信息?

我不想在A类中添加任何代码 但是可以在B类中添加任何内容。

4 个答案:

答案 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.
   }
}

当然,如果您不想将对象作为参数传递,也可以查看反射选项。