Lire en anglais

Partager via


ParameterInfo Classe

Définition

Identifie les attributs d'un paramètre et donne accès aux métadonnées du paramètre.

C#
public class ParameterInfo
C#
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference
C#
public class ParameterInfo : System.Reflection.ICustomAttributeProvider
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._ParameterInfo
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._ParameterInfo
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._ParameterInfo, System.Runtime.Serialization.IObjectReference
Héritage
ParameterInfo
Attributs
Implémente

Exemples

Cet exemple montre comment utiliser différentes classes de réflexion pour analyser les métadonnées contenues dans un assembly.

C#
using System;
using System.Reflection;

class Module1
{
    public static void Main()
    {
        // This variable holds the amount of indenting that
        // should be used when displaying each line of information.
        Int32 indent = 0;
        // Display information about the EXE assembly.
        Assembly a = typeof(Module1).Assembly;
        Display(indent, "Assembly identity={0}", a.FullName);
        Display(indent+1, "Codebase={0}", a.CodeBase);

        // Display the set of assemblies our assemblies reference.

        Display(indent, "Referenced assemblies:");
        foreach (AssemblyName an in a.GetReferencedAssemblies() )
        {
             Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", an.Name, an.Version, an.CultureInfo.Name, (BitConverter.ToString (an.GetPublicKeyToken())));
        }
        Display(indent, "");

        // Display information about each assembly loading into this AppDomain.
        foreach (Assembly b in AppDomain.CurrentDomain.GetAssemblies())
        {
            Display(indent, "Assembly: {0}", b);

            // Display information about each module of this assembly.
            foreach ( Module m in b.GetModules(true) )
            {
                Display(indent+1, "Module: {0}", m.Name);
            }

            // Display information about each type exported from this assembly.

            indent += 1;
            foreach ( Type t in b.GetExportedTypes() )
            {
                Display(0, "");
                Display(indent, "Type: {0}", t);

                // For each type, show its members & their custom attributes.

                indent += 1;
                foreach (MemberInfo mi in t.GetMembers() )
                {
                    Display(indent, "Member: {0}", mi.Name);
                    DisplayAttributes(indent, mi);

                    // If the member is a method, display information about its parameters.

                    if (mi.MemberType==MemberTypes.Method)
                    {
                        foreach ( ParameterInfo pi in ((MethodInfo) mi).GetParameters() )
                        {
                            Display(indent+1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name);
                        }
                    }

                    // If the member is a property, display information about the property's accessor methods.
                    if (mi.MemberType==MemberTypes.Property)
                    {
                        foreach ( MethodInfo am in ((PropertyInfo) mi).GetAccessors() )
                        {
                            Display(indent+1, "Accessor method: {0}", am);
                        }
                    }
                }
                indent -= 1;
            }
            indent -= 1;
        }
    }

    // Displays the custom attributes applied to the specified member.
    public static void DisplayAttributes(Int32 indent, MemberInfo mi)
    {
        // Get the set of custom attributes; if none exist, just return.
        object[] attrs = mi.GetCustomAttributes(false);
        if (attrs.Length==0) {return;}

        // Display the custom attributes applied to this member.
        Display(indent+1, "Attributes:");
        foreach ( object o in attrs )
        {
            Display(indent+2, "{0}", o.ToString());
        }
    }

    // Display a formatted string indented by the specified amount.
    public static void Display(Int32 indent, string format, params object[] param)

    {
        Console.Write(new string(' ', indent*2));
        Console.WriteLine(format, param);
    }
}

//The output shown below is abbreviated.
//
//Assembly identity=ReflectionCS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
//  Codebase=file:///C:/Documents and Settings/test/My Documents/Visual Studio 2005/Projects/Reflection/Reflection/obj/Debug/Reflection.exe
//Referenced assemblies:
//  Name=mscorlib, Version=2.0.0.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89
//
//Assembly: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//  Module: mscorlib.dll
//
//  Type: System.Object
//    Member: GetType
//    Member: ToString
//    Member: Equals
//      Parameter: Type=System.Object, Name=obj
//    Member: Equals
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: ReferenceEquals
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=System.Object, Name=objA
//      Parameter: Type=System.Object, Name=objB
//    Member: GetHashCode
//    Member: .ctor
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//
//  Type: System.ICloneable
//    Member: Clone
//
//  Type: System.Collections.IEnumerable
//    Member: GetEnumerator
//      Attributes:
//        System.Runtime.InteropServices.DispIdAttribute
//
//  Type: System.Collections.ICollection
//    Member: CopyTo
//      Parameter: Type=System.Array, Name=array
//      Parameter: Type=System.Int32, Name=index
//    Member: get_Count
//    Member: get_SyncRoot
//    Member: get_IsSynchronized
//    Member: Count
//      Accessor method: Int32 get_Count()
//    Member: SyncRoot
//      Accessor method: System.Object get_SyncRoot()
//    Member: IsSynchronized
//      Accessor method: Boolean get_IsSynchronized()
//
//  Type: System.Collections.IList
//    Member: get_Item
//      Parameter: Type=System.Int32, Name=index
//    Member: set_Item
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Add
//      Parameter: Type=System.Object, Name=value
//    Member: Contains
//      Parameter: Type=System.Object, Name=value
//    Member: Clear
//    Member: get_IsReadOnly
//    Member: get_IsFixedSize
//    Member: IndexOf
//      Parameter: Type=System.Object, Name=value
//    Member: Insert
//      Parameter: Type=System.Int32, Name=index
//      Parameter: Type=System.Object, Name=value
//    Member: Remove
//      Parameter: Type=System.Object, Name=value
//    Member: RemoveAt
//      Parameter: Type=System.Int32, Name=index
//    Member: Item
//      Accessor method: System.Object get_Item(Int32)
//      Accessor method: Void set_Item(Int32, System.Object)
//    Member: IsReadOnly
//      Accessor method: Boolean get_IsReadOnly()
//    Member: IsFixedSize
//      Accessor method: Boolean get_IsFixedSize()
//
//  Type: System.Array
//    Member: IndexOf
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: AsReadOnly
//      Parameter: Type=T[], Name=array
//    Member: Resize
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[]&, Name=array
//      Parameter: Type=System.Int32, Name=newSize
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//    Member: BinarySearch
//      Attributes:
//        System.Runtime.ConstrainedExecution.ReliabilityContractAttribute
//      Parameter: Type=T[], Name=array
//      Parameter: Type=T, Name=value
//      Parameter: Type=System.Collections.Generic.IComparer`1[T], Name=comparer

Remarques

Utilisez une instance de pour obtenir des ParameterInfo informations sur le type de données du paramètre, sa valeur par défaut, etc.

GetParameters retourne un tableau d’objets ParameterInfo représentant les paramètres d’une méthode, dans l’ordre.

Constructeurs

ParameterInfo()

Initialise une nouvelle instance de la classe ParameterInfo.

Champs

AttrsImpl

Attributs du paramètres.

ClassImpl

Le Type du paramètre.

DefaultValueImpl

Valeur par défaut du paramètre.

MemberImpl

Membre dans lequel le champ est implémenté.

NameImpl

Le nom du paramètre.

PositionImpl

Position de base zéro du paramètre dans la liste de paramètres.

Propriétés

Attributes

Obtient les attributs de ce paramètre.

CustomAttributes

Obtient une collection qui contient les attributs personnalisés de ce paramètre.

DefaultValue

Obtient une valeur qui indique la valeur par défaut si le paramètre a une valeur par défaut.

HasDefaultValue

Obtient une valeur qui indique si ce paramètre a une valeur par défaut.

IsIn

Obtient une valeur indiquant s'il s'agit d'un paramètre d'entrée.

IsLcid

Obtient une valeur indiquant si ce paramètre est un identificateur de paramètres régionaux (LCID).

IsOptional

Obtient une valeur indiquant si ce paramètre est facultatif.

IsOut

Obtient une valeur indiquant s'il s'agit d'un paramètre de sortie.

IsRetval

Obtient une valeur indiquant s'il s'agit d'un paramètre Retval.

Member

Obtient une valeur indiquant le membre dans lequel est implémenté le paramètre.

MetadataToken

Obtient une valeur qui identifie ce paramètre dans les métadonnées.

Name

Obtient le nom du paramètre.

ParameterType

Obtient le Type de ce paramètre.

Position

Obtient la position de base zéro du paramètre dans la liste de paramètres formels.

RawDefaultValue

Obtient une valeur qui indique la valeur par défaut si le paramètre a une valeur par défaut.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetCustomAttributes(Boolean)

Obtient tous les attributs personnalisés définis sur ce paramètre.

GetCustomAttributes(Type, Boolean)

Obtient les attributs personnalisés du type spécifié ou de ses types dérivés qui sont appliqués à ce paramètre.

GetCustomAttributesData()

Retourne une liste d'objets CustomAttributeData pour le paramètre actuel, qui peuvent être utilisés dans le contexte de réflexion uniquement.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetModifiedParameterType()

Obtient le type modifié de cet objet de paramètre.

GetOptionalCustomModifiers()

Obtient les modificateurs personnalisés facultatifs du paramètre.

GetRealObject(StreamingContext)
Obsolète.

Retourne l'objet réel qui doit être désérialisé à la place de l'objet spécifié par le flux sérialisé.

GetRequiredCustomModifiers()

Obtient les modificateurs personnalisés requis du paramètre.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsDefined(Type, Boolean)

Détermine si l'attribut personnalisé du type spécifié ou de ses types dérivés est appliqué à ce paramètre.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Obtient le type et le nom du paramètre représentés sous la forme d'une chaîne.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

_ParameterInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

_ParameterInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type pour un objet, qui peuvent être utilisées ensuite pour obtenir les informations de type d'une interface.

_ParameterInfo.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

_ParameterInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l'accès aux propriétés et aux méthodes exposées par un objet.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Retourne un tableau de tous les attributs personnalisés définis sur ce membre, en dehors des attributs nommés, ou un tableau vide s’il n’y a aucun attribut personnalisé.

ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Retourne un tableau d’attributs personnalisés définis sur ce membre, identifiés par type, ou un tableau vide s’il n’y a aucun attribut personnalisé de ce type.

ICustomAttributeProvider.IsDefined(Type, Boolean)

Indique si une ou plusieurs instances de attributeType sont définies sur ce membre.

Méthodes d’extension

GetCustomAttribute(ParameterInfo, Type)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un paramètre spécifié.

GetCustomAttribute(ParameterInfo, Type, Boolean)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un paramètre spécifié, et inspecte éventuellement les ancêtres de ce paramètre.

GetCustomAttribute<T>(ParameterInfo)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un paramètre spécifié.

GetCustomAttribute<T>(ParameterInfo, Boolean)

Récupère un attribut personnalisé d'un type spécifié qui est appliqué à un paramètre spécifié, et inspecte éventuellement les ancêtres de ce paramètre.

GetCustomAttributes(ParameterInfo)

Récupère une collection d'attributs personnalisés qui sont appliqués à un paramètre spécifié.

GetCustomAttributes(ParameterInfo, Boolean)

Récupère une collection d'attributs personnalisés qui sont appliqués à un paramètre spécifié, et inspecte éventuellement les ancêtres de ce paramètre.

GetCustomAttributes(ParameterInfo, Type)

Récupère une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un paramètre spécifié.

GetCustomAttributes(ParameterInfo, Type, Boolean)

Récupère une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un paramètre spécifié, et inspecte éventuellement les ancêtres de ce paramètre.

GetCustomAttributes<T>(ParameterInfo)

Récupère une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un paramètre spécifié.

GetCustomAttributes<T>(ParameterInfo, Boolean)

Récupère une collection d'attributs personnalisés d'un type spécifié qui sont appliqués à un paramètre spécifié, et inspecte éventuellement les ancêtres de ce paramètre.

IsDefined(ParameterInfo, Type)

Indique si des attributs personnalisés d'un type spécifié sont appliqués à un paramètre spécifié.

IsDefined(ParameterInfo, Type, Boolean)

Indique si les attributs personnalisés d'un type spécifié sont appliqués à un paramètre spécifié, et, éventuellement, appliqués à ses ancêtres.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Cohérence de thread

Ce type est thread-safe.