ParameterInfo Sınıf

Tanım

Bir parametrenin özniteliklerini bulur ve parametre meta verilerine erişim sağlar.

public ref class ParameterInfo
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 ref class ParameterInfo : System::Reflection::ICustomAttributeProvider
public ref class ParameterInfo : System::Reflection::ICustomAttributeProvider, System::Runtime::Serialization::IObjectReference
public class ParameterInfo
[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
public class ParameterInfo : System.Reflection.ICustomAttributeProvider
public class ParameterInfo : System.Reflection.ICustomAttributeProvider, System.Runtime.Serialization.IObjectReference
type ParameterInfo = class
[<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
type ParameterInfo = class
    interface ICustomAttributeProvider
type ParameterInfo = class
    interface ICustomAttributeProvider
    interface IObjectReference
Public Class ParameterInfo
Public Class ParameterInfo
Implements _ParameterInfo, ICustomAttributeProvider
Public Class ParameterInfo
Implements _ParameterInfo, ICustomAttributeProvider, IObjectReference
Public Class ParameterInfo
Implements ICustomAttributeProvider
Public Class ParameterInfo
Implements ICustomAttributeProvider, IObjectReference
Devralma
ParameterInfo
Öznitelikler
Uygulamalar

Örnekler

Bu örnekte, bir derlemede yer alan meta verileri analiz etmek için çeşitli yansıma sınıflarının nasıl kullanılacağı gösterilmektedir.

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()
'

Açıklamalar

Parametresinin ParameterInfo veri türü, varsayılan değeri vb. hakkında bilgi edinmek için örneğini kullanın.

GetParameters bir yöntemin ParameterInfo parametrelerini sırasıyla temsil eden bir nesne dizisi döndürür.

Oluşturucular

Name Description
ParameterInfo()

ParameterInfo sınıfının yeni bir örneğini başlatır.

Alanlar

Name Description
AttrsImpl

parametresinin öznitelikleri.

ClassImpl

Type parametresinin.

DefaultValueImpl

parametresinin varsayılan değeri.

MemberImpl

Alanın uygulandığı üye.

NameImpl

Parametrenin adı.

PositionImpl

Parametre listesindeki parametrenin sıfır tabanlı konumu.

Özellikler

Name Description
Attributes

Bu parametrenin özniteliklerini alır.

CustomAttributes

Bu parametrenin özel özniteliklerini içeren bir koleksiyon alır.

DefaultValue

Parametrenin varsayılan değeri varsa, varsayılan değeri gösteren bir değer alır.

HasDefaultValue

Bu parametrenin varsayılan değeri olup olmadığını gösteren bir değer alır.

IsIn

Bunun bir giriş parametresi olup olmadığını belirten bir değer alır.

IsLcid

Bu parametrenin yerel ayar tanımlayıcısı (lcid) olup olmadığını belirten bir değer alır.

IsOptional

Bu parametrenin isteğe bağlı olup olmadığını belirten bir değer alır.

IsOut

Bunun bir çıkış parametresi olup olmadığını belirten bir değer alır.

IsRetval

Bunun bir parametre olup olmadığını belirten bir Retval değer alır.

Member

Parametresinin uygulandığı üyeyi gösteren bir değer alır.

MetadataToken

Meta verilerde bu parametreyi tanımlayan bir değer alır.

Name

Parametresinin adını alır.

ParameterType

Bu parametrenin alır Type .

Position

Parametrenin resmi parametre listesindeki sıfır tabanlı konumunu alır.

RawDefaultValue

Parametrenin varsayılan değeri varsa, varsayılan değeri gösteren bir değer alır.

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetCustomAttributes(Boolean)

Bu parametrede tanımlanan tüm özel öznitelikleri alır.

GetCustomAttributes(Type, Boolean)

Belirtilen türün özel özniteliklerini veya bu parametreye uygulanan türetilmiş türlerini alır.

GetCustomAttributesData()

Geçerli parametre için yalnızca yansıma bağlamında kullanılabilen nesnelerin listesini CustomAttributeData döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetOptionalCustomModifiers()

parametresinin isteğe bağlı özel değiştiricilerini alır.

GetRealObject(StreamingContext)

Serileştirilmiş akışın belirttiği nesne yerine seri durumdan çıkarılması gereken gerçek nesneyi döndürür.

GetRequiredCustomModifiers()

Parametresinin gerekli özel değiştiricilerini alır.

GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
IsDefined(Type, Boolean)

Belirtilen türün özel özniteliğinin mi yoksa türetilmiş türlerinin mi bu parametreye uygulanacağını belirler.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Parametre türünü ve dize olarak temsil edilen adı alır.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

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

Bir ad kümesini karşılık gelen bir dağıtma tanımlayıcısı kümesine eşler.

_ParameterInfo.GetTypeInfo(UInt32, UInt32, IntPtr)

Bir nesne için tür bilgilerini alır ve bu da bir arabirimin tür bilgisini almak için kullanılabilir.

_ParameterInfo.GetTypeInfoCount(UInt32)

Bir nesnenin sağladığı tür bilgisi arabirimlerinin sayısını alır (0 ya da 1).

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

Bir nesne tarafından kullanıma sunulan özelliklere ve yöntemlere erişim sağlar.

ICustomAttributeProvider.GetCustomAttributes(Boolean)

Adlandırılmış öznitelikler hariç olmak üzere bu üyede tanımlanan tüm özel özniteliklerden oluşan bir dizi veya özel öznitelik yoksa boş bir dizi döndürür.

ICustomAttributeProvider.GetCustomAttributes(Type, Boolean)

Bu üyede tanımlanan, türe göre tanımlanan bir özel öznitelik dizisi veya bu türdeki özel öznitelikler yoksa boş bir dizi döndürür.

ICustomAttributeProvider.IsDefined(Type, Boolean)

Bir veya daha fazla örneğinin bu üyede tanımlanıp tanımlanmadığını attributeType gösterir.

Uzantı Metotları

Name Description
GetCustomAttribute(ParameterInfo, Type, Boolean)

Belirtilen bir parametreye uygulanan belirtilen türdeki özel özniteliği alır ve isteğe bağlı olarak bu parametrenin atalarını inceler.

GetCustomAttribute(ParameterInfo, Type)

Belirtilen parametreye uygulanan belirtilen türde bir özel özniteliği alır.

GetCustomAttribute<T>(ParameterInfo, Boolean)

Belirtilen bir parametreye uygulanan belirtilen türdeki özel özniteliği alır ve isteğe bağlı olarak bu parametrenin atalarını inceler.

GetCustomAttribute<T>(ParameterInfo)

Belirtilen parametreye uygulanan belirtilen türde bir özel özniteliği alır.

GetCustomAttributes(ParameterInfo, Boolean)

Belirtilen parametreye uygulanan özel özniteliklerden oluşan bir koleksiyonu alır ve isteğe bağlı olarak bu parametrenin atalarını inceler.

GetCustomAttributes(ParameterInfo, Type, Boolean)

Belirtilen parametreye uygulanan belirtilen türde özel özniteliklerden oluşan bir koleksiyonu alır ve isteğe bağlı olarak bu parametrenin atalarını inceler.

GetCustomAttributes(ParameterInfo, Type)

Belirtilen parametreye uygulanan belirtilen türde özel özniteliklerden oluşan bir koleksiyonu alır.

GetCustomAttributes(ParameterInfo)

Belirtilen parametreye uygulanan özel öznitelik koleksiyonunu alır.

GetCustomAttributes<T>(ParameterInfo, Boolean)

Belirtilen parametreye uygulanan belirtilen türde özel özniteliklerden oluşan bir koleksiyonu alır ve isteğe bağlı olarak bu parametrenin atalarını inceler.

GetCustomAttributes<T>(ParameterInfo)

Belirtilen parametreye uygulanan belirtilen türde özel özniteliklerden oluşan bir koleksiyonu alır.

IsDefined(ParameterInfo, Type, Boolean)

Belirtilen türe ait özel özniteliklerin belirtilen parametreye uygulanıp uygulanmadığını ve isteğe bağlı olarak üst değerlerine uygulanıp uygulanmadığını gösterir.

IsDefined(ParameterInfo, Type)

Belirtilen türde özel özniteliklerin belirtilen parametreye uygulanıp uygulanmadığını gösterir.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu tür iş parçacığı güvenlidir.