Module.FindTypes(TypeFilter, Object) Yöntem

Tanım

Verilen filtre ve filtre ölçütleri tarafından kabul edilen bir sınıf dizisi döndürür.

public:
 virtual cli::array <Type ^> ^ FindTypes(System::Reflection::TypeFilter ^ filter, System::Object ^ filterCriteria);
public virtual Type[] FindTypes (System.Reflection.TypeFilter? filter, object? filterCriteria);
public virtual Type[] FindTypes (System.Reflection.TypeFilter filter, object filterCriteria);
abstract member FindTypes : System.Reflection.TypeFilter * obj -> Type[]
override this.FindTypes : System.Reflection.TypeFilter * obj -> Type[]
Public Overridable Function FindTypes (filter As TypeFilter, filterCriteria As Object) As Type()

Parametreler

filter
TypeFilter

Sınıfları filtrelemek için kullanılan temsilci.

filterCriteria
Object

Sınıfları filtrelemek için kullanılan nesne.

Döndürülenler

Type[]

Filtre tarafından kabul edilen sınıfları içeren tür Type dizisi.

Özel durumlar

Modüldeki bir veya daha fazla sınıf yüklenemedi.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir FindTypes .

using namespace System;
using namespace System::Reflection;
using namespace System::Collections;
public ref class MySecondClass{};


// This class does not fit the filter criterion My*.
public ref class YourClass{};

int main()
{
   array<Module^>^moduleArray;
   moduleArray = Assembly::GetExecutingAssembly()->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 ];
   array<Type^>^tArray;
   tArray = myModule->FindTypes( Module::FilterTypeName, "My*" );
   IEnumerator^ myEnum = tArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Type^ t = safe_cast<Type^>(myEnum->Current);
      Console::WriteLine( "Found a module beginning with My*: {0}.", t->Name );
   }
}
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
    {
    }
}
Imports System.Reflection

Namespace ReflectionModule_Examples
    Class MyMainClass
        Shared Sub Main()
            Dim moduleArray() As [Module]

            moduleArray = GetType(MyMainClass).Assembly.GetModules(False)

            ' In a simple project with only one module, the module at index
            ' 0 will be the module containing these classes.
            Dim myModule As [Module] = moduleArray(0)

            Dim tArray() As Type

            tArray = myModule.FindTypes([Module].FilterTypeName, "My*")

            Dim t As Type
            For Each t In tArray
                Console.WriteLine("Found a module beginning with My*: {0}", t.Name)
            Next t
        End Sub
    End Class

    Class MySecondClass
    End Class

    ' This class does not fit the filter criteria My*.
    Class YourClass
    End Class
End Namespace 'ReflectionModule_Examples

Açıklamalar

ReflectionTypeLoadException özel bir sınıf yükü özel durumudur. özelliği, ReflectionTypeLoadException.Types modülde tanımlanan ve yüklenen sınıf dizisini içerir. Bu dizi bazı null değerler içerebilir. ReflectionTypeLoadException.LoaderExceptions özelliği, sınıf yükleyicisi tarafından oluşturulmuş özel durumları temsil eden bir özel durumlar dizisidir. Sınıf dizisindeki delikler özel durumlarla hizalı.

tarafından filter verilen temsilci modüldeki her sınıf için çağrılır ve hem sınıfı hem de verilen nesnesini temsil eden nesne boyunca Type geçirilir filterCriteria. Belirli bir sınıf döndürürse filter , bu sınıf döndürülen diziye eklenir. döndürürse filternull, tüm sınıflar döndürülür ve filterCriteria yoksayılır.

FindTypes diziler gibi parametreli türleri aramak için kullanılamaz.

Şunlara uygulanır

Ayrıca bkz.