首页 > 解决方案 > 获取系统命名空间中的所有类型

问题描述

我想打印 和 的所有using Systemusing System.Text

我写了这段代码:

static void Main(string[] args)
{
    string nspace = "System.Text";
    var q = from t in Assembly.GetExecutingAssembly().GetTypes()
            where t.IsClass && t.Namespace == nspace
            select t;
    q.ToList().ForEach(t => Console.WriteLine(t.Name));
    Console.ReadLine();
}

我编写的命名空间中的这段代码工作正常,但在System命名空间中它不起作用并且什么也不打印。

标签: c#.netnamespacessystem

解决方案


如果要对所有加载的程序集进行概括,可以像这样迭代所有加载的程序集:

public static void Main()
{
    string nspace = "System.Text";

    foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
    {
        foreach (var type in assembly.GetTypes().Where(t => t.IsClass && t.Namespace == nspace))
        {
            Console.WriteLine(type.FullName);
        }
    }
}

如果您只想从特定程序集中选择类型,那么 /u/HimBromBeere 发布了一个更好的方法。


推荐阅读