C#中如何获得指定命名空间中所有自定义类的信息

2024-12-21 13:56:38
推荐回答(2个)
回答1:

访问自定义类,同个命名空间下,class前要加上访问控制修饰符如 public(公共访问),private(私有访问),
如:namespace myclass
{
public class x
{ }
}
命名空间b访问时,就这样
using myclass
namespace bb
{
public class y {
public string m()
{
//实例化自定义类
myclass ms=new myclass();
}
}
}

回答2:

基本思路就是反射。但这个不是很好实现,因为反射是基于程序集的,需要一个DLL或EXE作为入口。建议把这个命名空间(如:YourLibrary.YourNamespace)放到一个程序集(类库)中,如:YourLibrary。然后用外部的程序集以反射的方式加载这个程序集,再调用GetTypes()来获取该程序集下的所有类。比如在YourLibrary.YourNamespace下有A,B,C三个类,现在在Test程序集(如:控制台程序)中遍历这三个类:
using System.Reflection;
namespace Test
{
public class Program
{
public static void Main(string[] args)
{
foreach(Type t in Assembly.Load("YourLibrary").GetTypes())
{
//你对这些类信息的操作
//e.g:
//Console.Write(t.FullName);
}
}
}
}