簡體   English   中英

獲取系統命名空間中的所有類型

[英]Getting all types in a System namespace

我想打印所有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命名空間中它不起作用並且什么也不打印。

如果要對所有加載的程序集進行概括,可以像這樣迭代所有加載的程序集:

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 發布了一個更好的方法。

那么, System.Text肯定不包含在執行程序集中。 它只是從中引用

您可以使用以下內容:

var systemAssembly = typeof(anyTypeFromSystemText).Assembly;
var q = from t in systemAssembly.GetTypes()
        where t.IsClass && t.Namespace == nspace
        select t;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM