如何在 C# 中检索命名空间内的所有类
在 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() 不可用,涉及 typeof() 的替代方法是获取程序集所需的:
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中文网其他相关文章!