C# 如何在C中动态获取名称空间和类的名称?

C# 如何在C中动态获取名称空间和类的名称?,c#,C#,我有两个类,类A和类B。这两个类位于两个不同的名称空间中。 我从类a中调用类B的静态方法,那么如何在被调用的类B的静态方法中获得类a及其命名空间的完整信息 我不想在类A中添加任何代码 但是可以向类B中添加任何内容。将类A作为参数传递给类B如何?比如: public class A{ public void CallB(){ ClassB.MyMethod(this); } } public static class B { public static void M

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

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

将类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.
   }
}
当然,如果不想将对象作为参数传递,也可以查看反射选项。

通过反射

您应该在对象上使用该方法

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"
        }
    }
}
obj.GetType().FullName;
typeof(AClass).FullName;