ParameterInfo Osztály

Definíció

Felderíti egy paraméter attribútumait, és hozzáférést biztosít a paraméter metaadataihoz.

public ref class ParameterInfo
public ref class ParameterInfo : System::Reflection::ICustomAttributeProvider, System::Runtime::Serialization::IObjectReference
public ref class ParameterInfo : System::Reflection::ICustomAttributeProvider
public ref class ParameterInfo : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_ParameterInfo
public ref class ParameterInfo : System::Reflection::ICustomAttributeProvider, System::Runtime::InteropServices::_ParameterInfo, System::Runtime::Serialization::IObjectReference
public class ParameterInfo
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference
public class ParameterInfo : System.Reflection.ICustomAttributeProvider
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.InteropServices._ParameterInfo
[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.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
type ParameterInfo = class
type ParameterInfo = class
    interface ICustomAttributeProvider
    interface IObjectReference
type ParameterInfo = class
    interface ICustomAttributeProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type ParameterInfo = class
    interface _ParameterInfo
    interface ICustomAttributeProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ParameterInfo = class
    interface _ParameterInfo
    interface ICustomAttributeProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ParameterInfo = class
    interface _ParameterInfo
    interface ICustomAttributeProvider
    interface IObjectReference
Public Class ParameterInfo
Public Class ParameterInfo
Implements ICustomAttributeProvider, IObjectReference
Public Class ParameterInfo
Implements ICustomAttributeProvider
Public Class ParameterInfo
Implements _ParameterInfo, ICustomAttributeProvider
Public Class ParameterInfo
Implements _ParameterInfo, ICustomAttributeProvider, IObjectReference
Öröklődés
ParameterInfo
Attribútumok
Megvalósítás

Példák

Ez a példa bemutatja, hogyan elemezheti a szerelvényben található metaadatokat különböző tükröződési osztályok használatával.

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
Imports System.Reflection

Module Module1
    Sub Main()
        ' This variable holds the amount of indenting that 
        ' should be used when displaying each line of information.
        Dim indent As Int32 = 0
        ' Display information about the EXE assembly.
        Dim a As Assembly = GetType(Module1).Assembly
        Display(indent, "Assembly identity={0}", a.FullName)
        Display(indent + 1, "Codebase={0}", a.CodeBase)

        ' Display the set of assemblies our assemblies reference.
        Dim an As AssemblyName
        Display(indent, "Referenced assemblies:")
        For Each 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))
        Next
        Display(indent, "")

        ' Display information about each assembly loading into this AppDomain.
        For Each a In AppDomain.CurrentDomain.GetAssemblies()
            Display(indent, "Assembly: {0}", a)

            ' Display information about each module of this assembly.
            Dim m As [Module]
            For Each m In a.GetModules(True)
                Display(indent + 1, "Module: {0}", m.Name)
            Next

            ' Display information about each type exported from this assembly.
            Dim t As Type
            indent += 1
            For Each t In a.GetExportedTypes()
                Display(0, "")
                Display(indent, "Type: {0}", t)

                ' For each type, show its members & their custom attributes.
                Dim mi As MemberInfo
                indent += 1
                For Each mi In t.GetMembers()
                    Display(indent, "Member: {0}", mi.Name)
                    DisplayAttributes(indent, mi)

                    ' If the member is a method, display information about its parameters.
                    Dim pi As ParameterInfo
                    If mi.MemberType = MemberTypes.Method Then
                        For Each pi In CType(mi, MethodInfo).GetParameters()
                            Display(indent + 1, "Parameter: Type={0}, Name={1}", pi.ParameterType, pi.Name)
                        Next
                    End If

                    ' If the member is a property, display information about the property's accessor methods.
                    If mi.MemberType = MemberTypes.Property Then
                        Dim am As MethodInfo
                        For Each am In CType(mi, PropertyInfo).GetAccessors()
                            Display(indent + 1, "Accessor method: {0}", am)
                        Next
                    End If
                Next
                indent -= 1
            Next
            indent -= 1
        Next
    End Sub

    ' Displays the custom attributes applied to the specified member.
    Sub DisplayAttributes(ByVal indent As Int32, ByVal mi As MemberInfo)
        ' Get the set of custom attributes; if none exist, just return.
        Dim attrs() As Object = mi.GetCustomAttributes(False)
        If attrs.Length = 0 Then Return

        ' Display the custom attributes applied to this member.
        Display(indent + 1, "Attributes:")
        Dim o As Object
        For Each o In attrs
            Display(indent + 2, "{0}", o.ToString())
        Next
    End Sub

    ' Display a formatted string indented by the specified amount.
    Sub Display(ByVal indent As Int32, ByVal format As String, ByVal ParamArray params() As Object)
        Console.Write(New String(" "c, indent * 2))
        Console.WriteLine(format, params)
    End Sub
End Module

'The output shown below is abbreviated.
'
'Assembly identity=Reflection, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
'  Codebase=file:///C:/Reflection.exe
'Referenced assemblies:
'  Name=mscorlib, Version=1.0.5000.0, Culture=, PublicKey token=B7-7A-5C-56-19-34-E0-89
'  Name=Microsoft.VisualBasic, Version=7.0.5000.0, Culture=, PublicKey token=B0-3F-5F-7F-11-D5-0A-3A
'
'Assembly: mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
'  Module: mscorlib.dll
'  Module: prc.nlp
'  Module: prcp.nlp
'  Module: ksc.nlp
'  Module: ctype.nlp
'  Module: xjis.nlp
'  Module: bopomofo.nlp
'  Module: culture.nlp
'  Module: region.nlp
'  Module: sortkey.nlp
'  Module: charinfo.nlp
'  Module: big5.nlp
'  Module: sorttbls.nlp
'  Module: l_intl.nlp
'  Module: l_except.nlp
'
'  Type: System.Object
'    Member: GetHashCode
'    Member: Equals
'      Parameter: Type=System.Object, Name=obj
'    Member: ToString
'    Member: Equals
'      Parameter: Type=System.Object, Name=objA
'      Parameter: Type=System.Object, Name=objB
'    Member: ReferenceEquals
'      Parameter: Type=System.Object, Name=objA
'      Parameter: Type=System.Object, Name=objB
'    Member: GetType
'    Member: .ctor
'
'  Type: System.ICloneable
'    Member: Clone
'
'  Type: System.Collections.IEnumerable
'    Member: GetEnumerator
'      Attributes:
'        System.Runtime.InteropServices.DispIdAttribute
'
'  Type: System.Collections.ICollection
'    Member: get_IsSynchronized
'    Member: get_SyncRoot
'    Member: get_Count
'    Member: CopyTo
'      Parameter: Type=System.Array, Name=array
'      Parameter: Type=System.Int32, Name=index
'    Member: Count
'      Accessor method: Int32 get_Count()
'    Member: SyncRoot
'      Accessor method: System.Object get_SyncRoot()
'    Member: IsSynchronized
'      Accessor method: Boolean get_IsSynchronized()
'

Megjegyzések

A paraméter adattípusával ParameterInfo , alapértelmezett értékével és így tovább.

GetParameters egy metódus paramétereit képviselő objektumtömböt ParameterInfo ad vissza sorrendben.

Konstruktorok

Name Description
ParameterInfo()

Inicializálja a ParameterInfo osztály új példányát.

Mezők

Name Description
AttrsImpl

A paraméter attribútumai.

ClassImpl

A Type paraméter értéke.

DefaultValueImpl

A paraméter alapértelmezett értéke.

MemberImpl

Az a tag, amelyben a mező implementálva van.

NameImpl

A paraméter neve.

PositionImpl

A paraméter nulla alapú pozíciója a paraméterlistában.

Tulajdonságok

Name Description
Attributes

Lekéri a paraméter attribútumait.

CustomAttributes

Lekéri a paraméter egyéni attribútumait tartalmazó gyűjteményt.

DefaultValue

Lekéri az alapértelmezett értéket jelző értéket, ha a paraméter alapértelmezett értékkel rendelkezik.

HasDefaultValue

Olyan értéket kap, amely jelzi, hogy ez a paraméter rendelkezik-e alapértelmezett értékkel.

IsIn

Beolvas egy értéket, amely jelzi, hogy ez bemeneti paraméter-e.

IsLcid

Beolvas egy értéket, amely jelzi, hogy ez a paraméter területi azonosító-e (lcid).

IsOptional

Beolvas egy értéket, amely jelzi, hogy ez a paraméter nem kötelező-e.

IsOut

Beolvas egy értéket, amely jelzi, hogy ez egy kimeneti paraméter.

IsRetval

Beolvas egy értéket, amely jelzi, hogy ez egy paraméter. >

Member

Beolvas egy értéket, amely azt a tagot jelzi, amelyben a paraméter implementálva van.

MetadataToken

Olyan értéket kap, amely azonosítja ezt a paramétert a metaadatokban.

Name

Lekéri a paraméter nevét.

ParameterType

Lekéri a Type paramétert.

Position

Lekéri a paraméter nulla alapú pozícióját a formális paraméterlistában.

RawDefaultValue

Lekéri az alapértelmezett értéket jelző értéket, ha a paraméter alapértelmezett értékkel rendelkezik.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetCustomAttributes(Boolean)

Lekéri a paraméterben definiált összes egyéni attribútumot.

GetCustomAttributes(Type, Boolean)

Lekéri a megadott típus vagy a paraméterre alkalmazott származtatott típusok egyéni attribútumait.

GetCustomAttributesData()

Az aktuális paraméter objektumlistáját CustomAttributeData adja vissza, amely a csak tükröződési környezetben használható.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetModifiedParameterType()

Lekéri ennek a paraméterobjektumnak a módosított típusát.

GetOptionalCustomModifiers()

Lekéri a paraméter választható egyéni módosítóit.

GetRealObject(StreamingContext)
Elavult.

A szerializált stream által megadott objektum helyett a deszerializálandó valós objektumot adja vissza.

GetRequiredCustomModifiers()

Lekéri a paraméter szükséges egyéni módosítóit.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefined(Type, Boolean)

Meghatározza, hogy a megadott típus vagy a származtatott típusok egyéni attribútuma legyen-e alkalmazva erre a paraméterre.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Lekéri a paraméter típusát és nevét sztringként.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

_ParameterInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek aztán a felület típusadatainak lekérésére használhatók.

_ParameterInfo.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

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

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

A tagon definiált összes egyéni attribútum tömbjének értékét adja vissza, kivéve az elnevezett attribútumokat, vagy üres tömböt, ha nincsenek egyéni attribútumok.

ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

A tagon definiált egyéni attribútumokat tartalmazó tömböt ad vissza, amely típus szerint van azonosítva, vagy üres tömböt ad vissza, ha nincsenek ilyen típusú egyéni attribútumok.

ICustomAttributeProvider.IsDefined(Type, Boolean)

Azt jelzi, hogy egy vagy több példány attributeType van-e definiálva ezen a tagon.

Bővítő metódusok

Name Description
GetCustomAttribute(ParameterInfo, Type, Boolean)

Lekéri a megadott típusú egyéni attribútumot, amely egy adott paraméterre van alkalmazva, és opcionálisan az adott paraméter elődeit vizsgálja.

GetCustomAttribute(ParameterInfo, Type)

Egy megadott típusú egyéni attribútumot kér le, amelyet egy adott paraméterre alkalmaz.

GetCustomAttribute<T>(ParameterInfo, Boolean)

Lekéri a megadott típusú egyéni attribútumot, amely egy adott paraméterre van alkalmazva, és opcionálisan az adott paraméter elődeit vizsgálja.

GetCustomAttribute<T>(ParameterInfo)

Egy megadott típusú egyéni attribútumot kér le, amelyet egy adott paraméterre alkalmaz.

GetCustomAttributes(ParameterInfo, Boolean)

Lekéri egy adott paraméterre alkalmazott egyéni attribútumok gyűjteményét, és opcionálisan az adott paraméter elődeit vizsgálja meg.

GetCustomAttributes(ParameterInfo, Type, Boolean)

Lekéri a megadott típusú egyéni attribútumok gyűjteményét, amelyek egy adott paraméterre vannak alkalmazva, és opcionálisan az adott paraméter elődeit is ellenőrzik.

GetCustomAttributes(ParameterInfo, Type)

Lekéri a megadott típusú egyéni attribútumok gyűjteményét, amelyek egy adott paraméterre lesznek alkalmazva.

GetCustomAttributes(ParameterInfo)

Egy adott paraméterre alkalmazott egyéni attribútumok gyűjteményét kéri le.

GetCustomAttributes<T>(ParameterInfo, Boolean)

Lekéri a megadott típusú egyéni attribútumok gyűjteményét, amelyek egy adott paraméterre vannak alkalmazva, és opcionálisan az adott paraméter elődeit is ellenőrzik.

GetCustomAttributes<T>(ParameterInfo)

Lekéri a megadott típusú egyéni attribútumok gyűjteményét, amelyek egy adott paraméterre lesznek alkalmazva.

IsDefined(ParameterInfo, Type, Boolean)

Azt jelzi, hogy a megadott típusú egyéni attribútumok alkalmazhatók-e egy adott paraméterre, és szükség esetén alkalmazva vannak-e az elődökre.

IsDefined(ParameterInfo, Type)

Azt jelzi, hogy a megadott típusú egyéni attribútumok alkalmazhatók-e egy adott paraméterre.

A következőre érvényes:

Szálbiztonság

Ez a típus szálbiztos.