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

本文关键字:命名空间 获取 动态 | 更新日期: 2023-09-27 18:12:20

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

我不想在A类中添加任何代码但是可以在类b中添加任何东西

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

Through Reflection。

http://msdn.microsoft.com/en-us/library/system.reflection.assemblyname.aspx

obj.GetType().FullName;

typeof(AClass).FullName;

您应该在您的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"
        }
    }
}

将类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.
   }
}

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