Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Module.FindTypes méthode (TypeFilter, Object)

 

Retourne un tableau de classes acceptées par le filtre donné et les critères de filtre.

Espace de noms:   System.Reflection
Assembly:  mscorlib (dans mscorlib.dll)

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

Paramètres

filter
Type: System.Reflection.TypeFilter

Le délégué utilisé pour filtrer les classes.

filterCriteria
Type: System.Object

Un objet utilisé pour filtrer les classes.

Valeur de retour

Type: System.Type[]

Un tableau de type Type contenant les classes qui ont été acceptées par le filtre.

Exception Condition
ReflectionTypeLoadException

Au moins une des classes d’un module n’a pas pu être chargée.

ReflectionTypeLoadExceptionest une exception de chargement de classe spéciale. Le ReflectionTypeLoadException.Types propriété contient le tableau des classes qui ont été définies dans le module et chargées. Ce tableau peut contenir des valeurs null. Le ReflectionTypeLoadException.LoaderExceptions propriété est un tableau d’exceptions qui représentent les exceptions levées par le chargeur de classes. Les trous dans le tableau de classe s’aligner avec les exceptions.

Le délégué donné par filter est appelée pour chaque classe dans le module, en passant le Type objet qui représente la classe, ainsi que les donné filterCriteria. Si filter retourne tant que classe est incluse dans le tableau retourné de la classe. Si filter retourne null, toutes les classes sont retournées et filterCriteria est ignoré.

FindTypesne peut pas être utilisé pour rechercher des types paramétrés tels que les tableaux.

L’exemple suivant illustre la FindTypes (méthode).

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
Disponible depuis 1.1
Retour au début
Afficher: