using System;
using System.Globalization;
using System.Runtime.InteropServices;
namespace System.Reflection
{
/// Interoperates with the IDispatch interface.
// Token: 0x02000037 RID: 55
[Guid("AFBF15E5-C37C-11d2-B88E-00A0C9B471B8")]
[ComVisible(true)]
public interface IReflect
{
/// Gets the underlying type that represents the object.
/// The underlying type that represents the object.
// Token: 0x1700006C RID: 108
// (get) Token: 0x06000597 RID: 1431
Type UnderlyingSystemType { get; }
/// Returns the object that corresponds to the specified field and binding flag.
/// A object containing the field information for the named object that meets the search constraints specified in .
/// The name of the field to find.
/// The binding attributes used to control the search.
/// The object implements multiple fields with the same name.
// Token: 0x06000598 RID: 1432
FieldInfo GetField(string name, BindingFlags bindingAttr);
/// Returns an array of objects that correspond to all fields of the current class.
/// An array of objects containing all the field information for this reflection object that meets the search constraints specified in .
/// The binding attributes used to control the search.
// Token: 0x06000599 RID: 1433
FieldInfo[] GetFields(BindingFlags bindingAttr);
/// Retrieves an array of objects corresponding to all public members or to all members that match a specified name.
/// An array of objects matching the parameter.
/// The name of the member to find.
/// The binding attributes used to control the search.
// Token: 0x0600059A RID: 1434
MemberInfo[] GetMember(string name, BindingFlags bindingAttr);
/// Retrieves an array of objects that correspond either to all public members or to all members of the current class.
/// An array of objects containing all the member information for this reflection object.
/// The binding attributes used to control the search.
// Token: 0x0600059B RID: 1435
MemberInfo[] GetMembers(BindingFlags bindingAttr);
/// Retrieves a object that corresponds to a specified method under specified search constraints.
/// A object containing the method information, with the match being based on the method name and search constraints specified in .
/// The name of the member to find.
/// The binding attributes used to control the search.
/// The object implements multiple methods with the same name.
// Token: 0x0600059C RID: 1436
MethodInfo GetMethod(string name, BindingFlags bindingAttr);
/// Retrieves a object corresponding to a specified method, using a array to choose from among overloaded methods.
/// The requested method that matches all the specified parameters.
/// The name of the member to find.
/// The binding attributes used to control the search.
/// An object that implements , containing properties related to this method.
/// An array used to choose among overloaded methods.
/// An array of parameter modifiers used to make binding work with parameter signatures in which the types have been modified.
/// The object implements multiple methods with the same name.
// Token: 0x0600059D RID: 1437
MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
/// Retrieves an array of objects with all public methods or all methods of the current class.
/// An array of objects containing all the methods defined for this reflection object that meet the search constraints specified in .
/// The binding attributes used to control the search.
// Token: 0x0600059E RID: 1438
MethodInfo[] GetMethods(BindingFlags bindingAttr);
/// Retrieves an array of objects corresponding to all public properties or to all properties of the current class.
/// An array of objects for all the properties defined on the reflection object.
/// The binding attribute used to control the search.
// Token: 0x0600059F RID: 1439
PropertyInfo[] GetProperties(BindingFlags bindingAttr);
/// Retrieves a object corresponding to a specified property under specified search constraints.
/// A object for the located property that meets the search constraints specified in , or null if the property was not located.
/// The name of the property to find.
/// The binding attributes used to control the search.
/// The object implements multiple fields with the same name.
// Token: 0x060005A0 RID: 1440
PropertyInfo GetProperty(string name, BindingFlags bindingAttr);
/// Retrieves a object that corresponds to a specified property with specified search constraints.
/// A object for the located property, if a property with the specified name was located in this reflection object, or null if the property was not located.
/// The name of the member to find.
/// The binding attribute used to control the search.
/// An object that implements , containing properties related to this method.
/// The type of the property.
/// An array used to choose among overloaded methods with the same name.
/// An array used to choose the parameter modifiers.
// Token: 0x060005A1 RID: 1441
PropertyInfo GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
/// Invokes a specified member.
/// The specified member.
/// The name of the member to find.
/// One of the invocation attributes. The parameter may be a constructor, method, property, or field. A suitable invocation attribute must be specified. Invoke the default member of a class by passing the empty string ("") as the name of the member.
/// One of the bit flags. Implements , containing properties related to this method.
/// The object on which to invoke the specified member. This parameter is ignored for static members.
/// An array of objects that contains the number, order, and type of the parameters of the member to be invoked. This is an empty array if there are no parameters.
/// An array of objects. This array has the same length as the parameter, representing the invoked member's argument attributes in the metadata. A parameter can have the following attributes: pdIn, pdOut, pdRetval, pdOptional, and pdHasDefault. These represent [In], [Out], [retval], [optional], and a default parameter, respectively. These attributes are used by various interoperability services.
/// An instance of used to govern the coercion of types. For example, converts a String that represents 1000 to a Double value, since 1000 is represented differently by different cultures. If this parameter is null, the for the current thread is used.
/// A String array of parameters.
///
/// is and another bit flag is also set.
///
/// is not and is null.
///
/// is not an invocation attribute from .
///
/// specifies both get and set for a property or field.
///
/// specifies both a field set and an Invoke method. are provided for a field get.
/// More than one argument is specified for a field set.
/// The field or property cannot be found.
/// The method cannot be found.
/// A private member is invoked without the necessary .
// Token: 0x060005A2 RID: 1442
object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters);
}
}