Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Module.FindTypes-Methode: (TypeFilter, Object)

 

Veröffentlicht: Juli 2016

Gibt ein Array von Klassen zurück, die vom angegebenen Filter und den Filterkriterien akzeptiert werden.

Namespace:   System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public virtual Type[] FindTypes(
	TypeFilter filter,
	object filterCriteria
)

Parameter

filter
Type: System.Reflection.TypeFilter

Der Delegat, der zum Filtern der Klassen verwendet wird.

filterCriteria
Type: System.Object

Ein Objekt, das zum Filtern der Klassen verwendet wird.

Rückgabewert

Type: System.Type[]

Ein Array vom Typ Type mit Klassen, die vom Filter akzeptiert wurden.

Exception Condition
ReflectionTypeLoadException

Mindestens eine Klasse in einem Modul konnte nicht geladen werden.

ReflectionTypeLoadExceptionist eine besondere Klasse Load-Ausnahme. Die ReflectionTypeLoadException.Types -Eigenschaft enthält das Array von Klassen, die im Modul definiert und geladen wurden. Dieses Array kann einige null-Werte enthalten. Die ReflectionTypeLoadException.LoaderExceptions Eigenschaft ist ein Array von Ausnahmen, die Ausnahmen darstellen, die vom Klassenladeprogramm ausgelöst wurden. Richten Sie die Lücken in der Klasse Array mit den Ausnahmen.

Der Delegat, der vom filter wird aufgerufen, für jede Klasse in das Modul, das weiter und übergibt dabei die Type Objekt, das die Klasse darstellt, sowie die angegebenen filterCriteria. Wenn filter gibt eine bestimmte Klasse, dass die Klasse in das zurückgegebene Array eingeschlossen werden sollen. Wenn filter gibt null, werden alle Klassen zurückgegeben und filterCriteria wird ignoriert.

FindTypeskann nicht verwendet werden, um parametrisierte Typen z. B. Arrays zu suchen.

Das folgende Beispiel veranschaulicht die FindTypes Methode.

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
    {
    }
}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: