Module.FindTypes(TypeFilter, Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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.