Module.FindTypes(TypeFilter, Object) Metod

Definition

Returnerar en matris med klasser som godkänts av det angivna filtret och filtervillkoren.

public:
 virtual cli::array <Type ^> ^ FindTypes(System::Reflection::TypeFilter ^ filter, System::Object ^ filterCriteria);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")]
public virtual Type[] FindTypes(System.Reflection.TypeFilter? filter, object? filterCriteria);
public virtual Type[] FindTypes(System.Reflection.TypeFilter filter, object filterCriteria);
public virtual Type[] FindTypes(System.Reflection.TypeFilter? filter, object? filterCriteria);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Types might be removed")>]
abstract member FindTypes : System.Reflection.TypeFilter * obj -> Type[]
override this.FindTypes : System.Reflection.TypeFilter * obj -> Type[]
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()

Parametrar

filter
TypeFilter

Ombudet som används för att filtrera klasserna.

filterCriteria
Object

Ett objekt som används för att filtrera klasserna.

Returer

Type[]

En matris av typen Type som innehåller klasser som godkänts av filtret.

Attribut

Undantag

Det gick inte att läsa in en eller flera klasser i en modul.

Exempel

I följande exempel visas FindTypes metoden.

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

Kommentarer

ReflectionTypeLoadException är ett särskilt klassinläsningsfel. Egenskapen ReflectionTypeLoadException.Types innehåller matrisen med klasser som definierades i modulen och lästes in. Den här matrisen kan innehålla några null-värden. Egenskapen ReflectionTypeLoadException.LoaderExceptions är en matris med undantag som representerar de undantag som utlöstes av klassinläsaren. Hålen i klassmatrisen överensstämmer med undantagen.

Ombudet som anges av anropas filter för varje klass i modulen och skickar vidare Type objektet som representerar klassen samt den angivna filterCriteria. Om filter returnerar en viss klass inkluderas den klassen i den returnerade matrisen. Om filter returnerar nullreturneras alla klasser och filterCriteria ignoreras.

FindTypes kan inte användas för att leta upp parametriserade typer, till exempel matriser.

Gäller för

Se även