Reflection mscorlib [00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ] 1.0.5000.0 2.0.0.0 4.0.0.0 All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe. System.Object System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual) System.Runtime.InteropServices.ComVisible(true)

Performs custom overload resolution and argument coercion to bind a member when reflection is used to invoke a member of a .

Late binding is controlled by a customized binding interface through reflection. The class is designed to provide this functionality. objects are used in overload resolution and argument coercion for dynamic invocation of members at runtime.

Access to information obtained from reflection is controlled at two levels: untrusted code and code with .

Untrusted code is code with no special level of trust (such as code downloaded from the Internet). Such code is allowed to invoke anything that it would have been able to invoke in an early bound way.

controls access to metadata through reflection. If this permission is granted to code, that code has access to all the types in its application domain, assembly, and module. It can access information about public, family, and private members of all types it has access to. Two primary capabilities are granted:

The ability to read the metadata for family and private members of any type.

The ability to access peer classes in the module and peer modules in the assembly.

The term "reflection" refers to the ability to obtain information about a during runtime. The primary means through which this information is accessed is via the of the object. Reflection allows the programmatic discovery of a type's metadata. The information included in the metadata includes details about the assembly or module in which the type is defined as well as members of the type. Reflection uses this information to provide the following primary services:

Access to type information at runtime.

The ability to use this type information to create instances, invoke methods, and access data members of the type.

The primary users of these services are script engines, object viewers, compilers, and object persistence formatters.

Through reflection, methods can be bound and invoked at runtime. If more than one member exists for a given member name, overload resolution determines which implementation of that method is invoked by the system. Coercion can occur when a parameter specified for a method call does not match the type specified for the parameter in the method signature. When possible, the binder converts the parameter (coerces it) to the type specified by the method signature. Coercion might not be possible depending on the types involved.

To bind to a method, field, or property, typically a list of probable candidates is obtained from the of a . That list is the passed to the appropriate method of a instance. Based on the other parameters passed to that method, typically (although not necessarily) one of the members of the list is chosen, and an object that reflects that member is returned.

The system supplies a default binder that provides default binding rules. Because binding rules vary among programming languages, it is recommended that each programming language provide a custom implementation of .

- Constructor
  Constructs a new instance of the class.
  To be added.
  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Reflection.FieldInfo `` `` `` `` A bitwise combination of values that control the binding process. For requirements, see the Behaviors section.

  An array of objects whose elements represent the set of fields that reflection has determined to be a possible match, typically because the fields have the correct member name.

  An object of a type that is assignment-compatible with the type of the field being searched for. For example, if is an instance of a class, the type of that instance can be assigned to the type of the field returned by this method. Fields in that cannot be assigned to this value are eliminated from the search.

  The only defined value for this parameter is .

  Selects a field from the specified set of fields, based on the specified criteria.

  A instance that reflects the field that matches the specified criteria. It is not required that this instance be contained in . If a suitable field is not found, returns .

  For the parameter, the caller is required to specify either or , and either or . If at least one value from each pair is not specified, this method is required to return .

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Reflection.MethodBase `` `` `` `` `` `` `` A bitwise combination of values that control the binding process. For requirements, see the Behaviors section. An array of objects that represent the set of methods that Reflection has determined to be a possible match, typically because they have the correct member name. An array of objects that represent the parameters passed in the method invocation. The types, values, and order of the elements of this array might be changed by this method to match the signature of the selected method.

  The only defined value for this parameter is .

  The only defined value for this parameter is .

  A array containing the names of methods to be searched.

  A binder-provided that keeps track of parameter reordering. The object is totally defined by the implementer of the class. This object is if the binder does not reorder the argument array of the bound method.

  Selects a method based on the specified criteria.

  A instance that reflects the method that matches to the specified criteria. It is not required that this instance be contained in . If a suitable method is not found, returns .

  If is not , the system invokes after this method returns. This allows a caller to map the argument array of a method back to the original form if the order has been altered by . This is useful if arguments are in the argument array, because the caller can retrieve those arguments in their original order on return from this method. When arguments are passed by name (i.e., using named arguments), the binder reorders the argument array and that is what the caller sees. This method insures that the original order of the arguments is restored.

  For the parameter, the caller is required to specify either or , and either or . If at least one value from each pair is not specified, this method is required to return .

  The method is permitted to change the order of the argument array of a method call only if the binder returns, via the parameter, a non-null opaque object that records the original order of the argument array. If, on return from , is not , the system calls .

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Object `` `` `` The object to be converted to a new . The to which is converted.

  The only defined value for this parameter is .

  Converts the type of the specified object to the specified type.

  A new object of the type specified by . The contents of this object are equal to those of .

  As described above.

  Implement this method to change the type of a member of a parameter array. Typically, it is recommended that implementations of this method perform only widening conversions.

  This method is used to change the type of a element in a parameter array to match the type required by the signature of a bound method.

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Void `` `` An array of objects whose elements represent the parameters passed to the bound method in their original order.

  A binder-provided opaque object that keeps track of parameter reordering. This object is the same object that was passed as the parameter in the invocation of that caused to be called.

  To be added.

  Restores the specified set of parameters to their original order after a call to .

  When a method call is bound to a method through reflection using , the order, value, and type of the parameters in the original method call can be changed to match the signature of the bound method. The binder creates as an opaque object that records the original order of the argument array. If, on return from , is not , the system calls . This allows a caller to map the argument array of a method back to the original form if the order had been altered by . This is useful if arguments are in the argument array, because the caller can retrieve those arguments in their original order on return from this method. When arguments are passed by name (i.e., using named arguments), the binder reorders the argument array and that is what the caller sees. This method insures that the original order of the arguments is restored.

  is required to be a non-null that tracks the original ordering of if is reordered by a call to . This method is required to restore the elements of to their original order, value, and

  Implement this method to insure that the parameters contained in are returned to their original order, and value, after being used by a bound method.

  Use this method to insure that the parameters contained in are returned to their original order, and value, after being used by a bound method.

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Reflection.MethodBase `` `` `` `` A bitwise combination of values that control the binding process. For requirements, see the Behaviors section. An array of objects that represent the set of methods that Reflection has determined to be a possible match, typically because they have the correct member name. An array of objects that represent the values used to locate a matching method.

  The only defined value for this parameter is .

  Selects a method from the specified set of methods, based on the argument type.

  A instance that reflects the method that is matched to the specified criteria. It is not required that this instance be contained in . If a suitable method is not found, returns .

  For the parameter, the caller is required to specify either or , and either or . If at least one value from each pair is not specified, this method is required to return .

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
- Method
  System.Reflection.PropertyInfo `` `` `` `` `` A bitwise combination of values that control the binding process. For requirements, see the Behaviors section. An array of objects that represent the set of properties that Reflection has determined to be a possible match, typically because they have the correct member name. The of the property being searched for. An array of objects that represent the index types of the property being searched for. Use this parameter for index properties such as the indexer for a class.

  The only defined value for this parameter is .

  Selects a property from the specified set of properties, based on the specified criteria.

  A instance that reflects the property that matches the specified criteria. It is not required that this instance be contained in . If a suitable property is not found, returns .

  For the parameter, the caller is required to specify either or , and either or . If at least one value from each pair is not specified, this method is required to return .

  0
  1.0.5000.0
  2.0.0.0
  4.0.0.0
0