英語で読む

次の方法で共有


Module.FindTypes(TypeFilter, Object) メソッド

定義

指定したフィルターとフィルター条件で受け入れられたクラスの配列を返します。

C#
public virtual Type[] FindTypes(System.Reflection.TypeFilter? filter, object? filterCriteria);
C#
public virtual Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria);

パラメーター

filter
TypeFilter

クラスのフィルター処理に使用するデリゲート。

filterCriteria
Object

クラスをフィルター処理するために使用するオブジェクト。

戻り値

Type[]

フィルターが受け入れたクラスを格納している Type 型の配列。

例外

モジュールの 1 つまたは複数のクラスを読み込むことができませんでした。

FindTypesメソッドの例を次に示します。

C#
using System;
using System.Reflection;

namespace ReflectionModule_Examples
{
    class MyMainClass
    {
        static void Main()
        {
            Module[] moduleArray;
            
            moduleArray = typeof(MyMainClass).Assembly.GetModules(false);
            
            // In a simple project with only one module, the module at index
            // 0 will be the module containing these classes.
            Module myModule = moduleArray[0];

            Type[] tArray;

            tArray = myModule.FindTypes(Module.FilterTypeName, "My*");
            
            foreach(Type t in tArray)
            {
                Console.WriteLine("Found a module beginning with My*: {0}.", t.Name);
            }
        }
    }

    class MySecondClass
    {
    }

    // This class does not fit the filter criteria My*.
    class YourClass
    {
    }
}

注釈

ReflectionTypeLoadException は特別なクラス読み込み例外です。 プロパティには ReflectionTypeLoadException.Types 、モジュールで定義され、読み込まれたクラスの配列が含まれています。 この配列には、いくつかの null 値を含めることができます。 プロパティは ReflectionTypeLoadException.LoaderExceptions 、クラス ローダーによってスローされた例外を表す例外の配列です。 クラス配列の穴は例外と一緒に並びます。

によって指定されたfilterデリゲートは、モジュール内の各クラスに対して呼び出され、 クラスを表す オブジェクトと指定filterCriteriaされた を渡Typeします。 が特定のクラスを返す場合 filter 、そのクラスは返される配列に含まれます。 が を返すnull場合filter、すべてのクラスが返され、filterCriteria無視されます。

FindTypes を使用して、配列などのパラメーター化された型を検索することはできません。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1

こちらもご覧ください