在 C# 中检索命名空间内的类
在 C# 中,获取特定命名空间内的所有类需要间接方法。要实现此目的:
枚举程序集类型:
按命名空间过滤:
以下代码片段演示了此过程:
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace) { return assembly.GetTypes() .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)) .ToArray(); }
用法示例:
Assembly executingAssembly = Assembly.GetExecutingAssembly(); Type[] typelist = GetTypesInNamespace(executingAssembly, "MyNamespace"); for (int i = 0; i < typelist.Length; i++) { Console.WriteLine(typelist[i].Name); }
对于 2.0 之前的 .NET 版本,其中 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# 中检索特定命名空间内的所有类?的详细内容。更多信息请关注PHP中文网其他相关文章!