使用C#反射存取命名空間中的所有類別
在C#中,透過反射取得命名空間中的所有類別需要仔細考慮。與Java不同,Java中的類別僅存在於指定的命名空間中,而C#命名空間可以跨多個組件。
要獲得命名空間中類別的完整列表,請按照以下步驟操作:
Assembly.GetExecutingAssembly().GetTypes()
來實現。 where t.IsClass && t.Namespace == nspace
之類的結構進行篩選。 以下程式碼有效地使用了這種方法:
<code class="language-csharp">string nspace = "..."; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace select t; q.ToList().ForEach(t => Console.WriteLine(t.Name));</code>
此程式碼迭代執行程式集中的所有類型,選擇指定命名空間中的類別。然後將類別名稱列印到控制台。 請注意,這僅限於目前執行的程序集。 要存取其他程式集中的類,需要修改程式碼以包含這些程序集的參考。
以上是如何在 C# 中使用反射存取命名空間中的所有類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!