ParameterInfo Class
Discovers the attributes of a parameter and provides access to parameter metadata.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() | ParameterInfo() | Initializes a new instance of the ParameterInfo class. |
| Name | Description | |
|---|---|---|
![]() | Attributes | Gets the attributes for this parameter. |
![]() | CustomAttributes | Gets a collection that contains this parameter's custom attributes. |
![]() | DefaultValue | Gets a value indicating the default value if the parameter has a default value. |
![]() | HasDefaultValue | Gets a value that indicates whether this parameter has a default value. |
![]() | IsIn | Gets a value indicating whether this is an input parameter. |
![]() | IsLcid | Gets a value indicating whether this parameter is a locale identifier (lcid). |
![]() | IsOptional | Gets a value indicating whether this parameter is optional. |
![]() | IsOut | Gets a value indicating whether this is an output parameter. |
![]() | IsRetval | Gets a value indicating whether this is a Retval parameter. |
![]() | Member | Gets a value indicating the member in which the parameter is implemented. |
![]() | MetadataToken | Gets a value that identifies this parameter in metadata. |
![]() | Name | Gets the name of the parameter. |
![]() | ParameterType | Gets the Type of this parameter. |
![]() | Position | Gets the zero-based position of the parameter in the formal parameter list. |
![]() | RawDefaultValue | Gets a value indicating the default value if the parameter has a default value. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetCustomAttributes(Boolean) | Gets all the custom attributes defined on this parameter. |
![]() | GetCustomAttributes(Type^, Boolean) | Gets the custom attributes of the specified type or its derived types that are applied to this parameter. |
![]() | GetCustomAttributesData() | Returns a list of CustomAttributeData objects for the current parameter, which can be used in the reflection-only context. |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetOptionalCustomModifiers() | Gets the optional custom modifiers of the parameter. |
![]() | GetRealObject(StreamingContext) | Returns the real object that should be deserialized instead of the object that the serialized stream specifies. |
![]() | GetRequiredCustomModifiers() | Gets the required custom modifiers of the parameter. |
![]() | GetType() | |
![]() | IsDefined(Type^, Boolean) | Determines whether the custom attribute of the specified type or its derived types is applied to this parameter. |
![]() | MemberwiseClone() | |
![]() | ToString() | Gets the parameter type and name represented as a string.(Overrides Object::ToString().) |
| Name | Description | |
|---|---|---|
![]() | AttrsImpl | The attributes of the parameter. |
![]() | ClassImpl | The Type of the parameter. |
![]() | DefaultValueImpl | The default value of the parameter. |
![]() | MemberImpl | The member in which the field is implemented. |
![]() | NameImpl | The name of the parameter. |
![]() | PositionImpl | The zero-based position of the parameter in the parameter list. |
| Name | Description | |
|---|---|---|
![]() ![]() | _ParameterInfo::GetIDsOfNames(Guid%, IntPtr, UInt32, UInt32, IntPtr) | Maps a set of names to a corresponding set of dispatch identifiers. |
![]() ![]() | _ParameterInfo::GetTypeInfo(UInt32, UInt32, IntPtr) | Retrieves the type information for an object, which can then be used to get the type information for an interface. |
![]() ![]() | _ParameterInfo::GetTypeInfoCount(UInt32%) | Retrieves the number of type information interfaces that an object provides (either 0 or 1). |
![]() ![]() | _ParameterInfo::Invoke(UInt32, Guid%, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Provides access to properties and methods exposed by an object. |
| Name | Description | |
|---|---|---|
![]() | GetCustomAttribute(Type^) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute(Type^, Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified parameter, and optionally inspects the ancestors of that parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute<T>() | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttribute<T>(Boolean) | Overloaded. Retrieves a custom attribute of a specified type that is applied to a specified parameter, and optionally inspects the ancestors of that parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes() | Overloaded. Retrieves a collection of custom attributes that are applied to a specified parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes(Type^) | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter.(Defined by CustomAttributeExtensions.) |
![]() | GetCustomAttributes<T>(Boolean) | Overloaded. Retrieves a collection of custom attributes of a specified type that are applied to a specified parameter, and optionally inspects the ancestors of that parameter.(Defined by CustomAttributeExtensions.) |
![]() | IsDefined(Type^) | Overloaded. Indicates whether custom attributes of a specified type are applied to a specified parameter.(Defined by CustomAttributeExtensions.) |
Use an instance of ParameterInfo to obtain information about the parameter's data type, default value, and so on.
GetParameters returns an array of ParameterInfo objects representing the parameters of a method, in order.
This example shows how to use various reflection classes to analyze the metadata contained in an assembly.
using namespace System; using namespace System::Reflection; static void Display(Int32 indent, String^ format, ... array<Object^>^param) { Console::Write("{0}", gcnew String (' ', indent)); Console::WriteLine(format, param); } // Displays the custom attributes applied to the specified member. static void DisplayAttributes(Int32 indent, MemberInfo^ mi) { // Get the set of custom attributes; if none exist, just return. array<Object^>^attrs = mi->GetCustomAttributes(false); if (attrs->Length==0) { return; } // Display the custom attributes applied to this member. Display(indent+1, "Attributes:"); for each ( Object^ o in attrs ) { Display(indent*2, "{0}", o); } } void main() { try { // 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 = System::Reflection::Assembly::GetExecutingAssembly(); Display(indent, "Assembly identity={0}", gcnew array<Object^> {a->FullName}); Display(indent+1, "Codebase={0}", gcnew array<Object^> {a->CodeBase}); // Display the set of assemblies our assemblies reference. Display(indent, "Referenced assemblies:"); for each ( AssemblyName^ an in a->GetReferencedAssemblies() ) { Display(indent + 1, "Name={0}, Version={1}, Culture={2}, PublicKey token={3}", gcnew array<Object^> {an->Name, an->Version, an->CultureInfo, (BitConverter::ToString(an->GetPublicKeyToken()))}); } Display(indent, ""); // Display information about each assembly loading into this AppDomain. for each ( Assembly^ b in AppDomain::CurrentDomain->GetAssemblies()) { Display(indent, "Assembly: {0}", gcnew array<Object^> {b}); // Display information about each module of this assembly. for each ( Module^ m in b->GetModules(true) ) { Display(indent+1, "Module: {0}", gcnew array<Object^> {m->Name}); } // Display information about each type exported from this assembly. indent += 1; for each ( Type^ t in b->GetExportedTypes() ) { Display(0, ""); Display(indent, "Type: {0}", gcnew array<Object^> {t}); // For each type, show its members & their custom attributes. indent += 1; for each (MemberInfo^ mi in t->GetMembers() ) { Display(indent, "Member: {0}", gcnew array<Object^> {mi->Name}); DisplayAttributes(indent, mi); // If the member is a method, display information about its parameters. if (mi->MemberType==MemberTypes::Method) { for each ( ParameterInfo^ pi in (((MethodInfo^) mi)->GetParameters())) { Display(indent+1, "Parameter: Type={0}, Name={1}", gcnew array<Object^> {pi->ParameterType, pi->Name}); } } // If the member is a property, display information about the property's accessor methods. if (mi->MemberType==MemberTypes::Property) { for each ( MethodInfo^ am in (((PropertyInfo^) mi)->GetAccessors()) ) { Display(indent+1, "Accessor method: {0}", gcnew array<Object^> {am}); } } } // Display a formatted string indented by the specified amount. indent -= 1; } indent -= 1; } } catch (Exception^ e) { Console::WriteLine(e->Message); } } // 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() //
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
This type is thread safe.





