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); }
.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# で特定の名前空間内のすべてのクラスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。