获取特定命名空间内的所有类在各种场景中都是必不可少的。在 C# 中,有多种方法可以完成此任务。
为了满足这一需求,我们将探索一种向后方法。通过最初列出程序集中的所有类型,然后仔细检查每种类型的命名空间,我们可以有效地筛选出所需的类。
以下代码片段展示了此技术:
using System.Reflection; private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
为了说明其用法,请考虑以下示例:
Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
在 .Net 2.0 之前的环境中,其中“Assembly.GetExecutingAssembly()”不可用,您需要一种解决方法来检索程序集,如下所示:
Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly; Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
通过使用这些方法,您可以有效地枚举 C# 中所需命名空间内的所有类。
以上是如何在 C# 中检索特定命名空间内的所有类?的详细内容。更多信息请关注PHP中文网其他相关文章!