using System; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; namespace System.Reflection { /// Discovers the attributes of a property and provides access to property metadata. // Token: 0x02000268 RID: 616 [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_PropertyInfo))] [Serializable] public abstract class PropertyInfo : MemberInfo, _PropertyInfo { /// Maps a set of names to a corresponding set of dispatch identifiers. /// Reserved for future use. Must be IID_NULL. /// Passed-in array of names to be mapped. /// Count of the names to be mapped. /// The locale context in which to interpret the names. /// Caller-allocated array which receives the IDs corresponding to the names. /// Late-bound access using the COM IDispatch interface is not supported. // Token: 0x06001FC2 RID: 8130 RVA: 0x000744C4 File Offset: 0x000726C4 void _PropertyInfo.GetIDsOfNames([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId) { throw new NotImplementedException(); } /// Retrieves the type information for an object, which can then be used to get the type information for an interface. /// The type information to return. /// The locale identifier for the type information. /// Receives a pointer to the requested type information object. /// Late-bound access using the COM IDispatch interface is not supported. // Token: 0x06001FC3 RID: 8131 RVA: 0x000744CC File Offset: 0x000726CC void _PropertyInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo) { throw new NotImplementedException(); } /// Retrieves the number of type information interfaces that an object provides (either 0 or 1). /// Points to a location that receives the number of type information interfaces provided by the object. /// Late-bound access using the COM IDispatch interface is not supported. // Token: 0x06001FC4 RID: 8132 RVA: 0x000744D4 File Offset: 0x000726D4 void _PropertyInfo.GetTypeInfoCount(out uint pcTInfo) { throw new NotImplementedException(); } /// Provides access to properties and methods exposed by an object. /// Identifies the member. /// Reserved for future use. Must be IID_NULL. /// The locale context in which to interpret arguments. /// Flags describing the context of the call. /// Pointer to a structure containing an array of arguments, an array of argument DISPIDs for named arguments, and counts for the number of elements in the arrays. /// Pointer to the location where the result is to be stored. /// Pointer to a structure that contains exception information. /// The index of the first argument that has an error. /// Late-bound access using the COM IDispatch interface is not supported. // Token: 0x06001FC5 RID: 8133 RVA: 0x000744DC File Offset: 0x000726DC void _PropertyInfo.Invoke(uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr) { throw new NotImplementedException(); } /// Gets the attributes for this property. /// Attributes of this property. // Token: 0x170005F0 RID: 1520 // (get) Token: 0x06001FC6 RID: 8134 public abstract PropertyAttributes Attributes { get; } /// Gets a value indicating whether the property can be read. /// true if this property can be read; otherwise, false. // Token: 0x170005F1 RID: 1521 // (get) Token: 0x06001FC7 RID: 8135 public abstract bool CanRead { get; } /// Gets a value indicating whether the property can be written to. /// true if this property can be written to; otherwise, false. // Token: 0x170005F2 RID: 1522 // (get) Token: 0x06001FC8 RID: 8136 public abstract bool CanWrite { get; } /// Gets a value indicating whether the property is the special name. /// true if this property is the special name; otherwise, false. // Token: 0x170005F3 RID: 1523 // (get) Token: 0x06001FC9 RID: 8137 RVA: 0x000744E4 File Offset: 0x000726E4 public bool IsSpecialName { get { return (this.Attributes & PropertyAttributes.SpecialName) != PropertyAttributes.None; } } /// Gets a value indicating that this member is a property. /// A value indicating that this member is a property. // Token: 0x170005F4 RID: 1524 // (get) Token: 0x06001FCA RID: 8138 RVA: 0x000744F8 File Offset: 0x000726F8 public override MemberTypes MemberType { get { return MemberTypes.Property; } } /// Gets the type of this property. /// The type of this property. // Token: 0x170005F5 RID: 1525 // (get) Token: 0x06001FCB RID: 8139 public abstract Type PropertyType { get; } /// Returns an array whose elements reflect the public get, set, and other accessors of the property reflected by the current instance. /// An array that contains the public get, set, and other accessors of the property reflected by the current instance, if found; otherwise, this method returns an array with 0 (zero) elements. // Token: 0x06001FCC RID: 8140 RVA: 0x000744FC File Offset: 0x000726FC public MethodInfo[] GetAccessors() { return this.GetAccessors(false); } /// Returns an array whose elements reflect the public (and, if specified, non-public) get, set, and other accessors of the property reflected by the current instance. /// An array that contains the get, set, and other accessors of the property reflected by the current instance. If is true, this array contains public and non-public get, set, and other accessors. If is false, this array contains only public get, set, and other accessors. If no accessors with the specified visibility are found, this method returns an array with 0 (zero) elements. /// Indicates whether non-public methods should be returned in the MethodInfo array. true if non-public methods are to be included; otherwise, false. // Token: 0x06001FCD RID: 8141 public abstract MethodInfo[] GetAccessors(bool nonPublic); /// Returns the public get accessor for this property. /// The public get accessor for this property, if the get accessor exists and is public; otherwise, null. // Token: 0x06001FCE RID: 8142 RVA: 0x00074508 File Offset: 0x00072708 public MethodInfo GetGetMethod() { return this.GetGetMethod(false); } /// When overridden in a derived class, returns the public or non-public get accessor for this property. /// The get accessor for this property, if is true. Returns null if is false and the get accessor is non-public, or if is true but no get accessor exists. /// true to return a non-public accessor; otherwise, false. /// The requested method is non-public and the caller does not have to reflect on this non-public method. // Token: 0x06001FCF RID: 8143 public abstract MethodInfo GetGetMethod(bool nonPublic); /// Gets an array of all the index parameters for the property. /// An array that contains the index parameters. If the property is not indexed, the array has 0 (zero) elements. // Token: 0x06001FD0 RID: 8144 public abstract ParameterInfo[] GetIndexParameters(); /// Returns the public set accessor for this property. /// The Set method for this property, if the set accessor exists and is public; otherwise, null. // Token: 0x06001FD1 RID: 8145 RVA: 0x00074514 File Offset: 0x00072714 public MethodInfo GetSetMethod() { return this.GetSetMethod(false); } /// When overridden in a derived class, returns the set accessor for this property. /// Value Condition A object representing the Set method for this property. The set accessor is public.-or- is true and a set accessor exists. null is true, but the property is read-only.-or- is false and the set accessor is non-public.-or- There is no set accessor. /// true to return a non-public accessor; otherwise, false. /// The requested method is non-public and the caller does not have to reflect on this non-public method. // Token: 0x06001FD2 RID: 8146 public abstract MethodInfo GetSetMethod(bool nonPublic); /// Returns the value of the property with optional index values for indexed properties. /// The property value for the parameter. /// The object whose property value will be returned. /// Optional index values for indexed properties. This value should be null for non-indexed properties. /// The array does not contain the type of arguments needed.-or- The property's get accessor is not found. /// The object does not match the target type.-or- The property is an instance property, but is null. /// The number of parameters in does not match the number of parameters the indexed property takes. /// There was an illegal attempt to access a private or protected method inside a class. /// An error occurred while retrieving the property value. For example, an index value specified for an indexed property is out of range. The property indicates the reason for the error. // Token: 0x06001FD3 RID: 8147 RVA: 0x00074520 File Offset: 0x00072720 [DebuggerHidden] [DebuggerStepThrough] public virtual object GetValue(object obj, object[] index) { return this.GetValue(obj, BindingFlags.Default, null, index, null); } /// When overridden in a derived class, returns the value of a property that has the specified binding, index, and . /// The property value for . /// The object whose property value will be returned. /// The invocation attribute. This must be a bit flag from BindingFlags: InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set. /// An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If is null, the default binder is used. /// Optional index values for indexed properties. This value should be null for non-indexed properties. /// The culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property. /// The array does not contain the type of arguments needed.-or- The property's get accessor is not found. /// The object does not match the target type.-or- The property is an instance property, but is null. /// The number of parameters in does not match the number of parameters the indexed property takes. /// There was an illegal attempt to access a private or protected method inside a class. /// An error occurred while retrieving the property value. For example, an index value specified for an indexed property is out of range. The property indicates the reason for the error. // Token: 0x06001FD4 RID: 8148 public abstract object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); /// Sets the value of the property with optional index values for index properties. /// The object whose property value will be set. /// The new value for this property. /// Optional index values for indexed properties. This value should be null for non-indexed properties. /// The array does not contain the type of arguments needed.-or- The property's set accessor is not found. /// The object does not match the target type.-or-The property is an instance property, but is null. /// The number of parameters in does not match the number of parameters the indexed property takes. /// There was an illegal attempt to access a private or protected method inside a class. /// An error occurred while setting the property value. For example, an index value specified for an indexed property is out of range. The property indicates the reason for the error. // Token: 0x06001FD5 RID: 8149 RVA: 0x00074530 File Offset: 0x00072730 [DebuggerHidden] [DebuggerStepThrough] public virtual void SetValue(object obj, object value, object[] index) { this.SetValue(obj, value, BindingFlags.Default, null, index, null); } /// When overridden in a derived class, sets the property value for the given object to the given value. /// The object whose property value will be set. /// The new value for this property. /// The invocation attribute. This must be a bit flag from : InvokeMethod, CreateInstance, Static, GetField, SetField, GetProperty, or SetProperty. A suitable invocation attribute must be specified. If a static member is to be invoked, the Static flag of BindingFlags must be set. /// An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects through reflection. If is null, the default binder is used. /// Optional index values for indexed properties. This value should be null for non-indexed properties. /// The culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the CultureInfo.Parent method will be called successively in search of a match. If this value is null, the CultureInfo is obtained from the CultureInfo.CurrentUICulture property. /// The array does not contain the type of arguments needed.-or- The property's set accessor is not found. /// The object does not match the target type.-or-The property is an instance property, but is null. /// The number of parameters in does not match the number of parameters the indexed property takes. /// There was an illegal attempt to access a private or protected method inside a class. /// An error occurred while setting the property value. For example, an index value specified for an indexed property is out of range. The property indicates the reason for the error. // Token: 0x06001FD6 RID: 8150 public abstract void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); /// Returns an array of types representing the optional custom modifiers of the property. /// An array of objects that identify the optional custom modifiers of the current property, such as or . // Token: 0x06001FD7 RID: 8151 RVA: 0x00074540 File Offset: 0x00072740 public virtual Type[] GetOptionalCustomModifiers() { return Type.EmptyTypes; } /// Returns an array of types representing the required custom modifiers of the property. /// An array of objects that identify the required custom modifiers of the current property, such as or . // Token: 0x06001FD8 RID: 8152 RVA: 0x00074548 File Offset: 0x00072748 public virtual Type[] GetRequiredCustomModifiers() { return Type.EmptyTypes; } /// Returns a literal value associated with the property by a compiler. /// The literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null. /// The Constant table in unmanaged metadata does not contain a constant value for the current property. /// The type of the value is not one of the types permitted by the Common Language Specification (CLS). See the Standard ECMA-335 - Common Language Infrastructure (CLI) specification, Partition II. // Token: 0x06001FD9 RID: 8153 RVA: 0x00074550 File Offset: 0x00072750 [MonoTODO("Not implemented")] public virtual object GetConstantValue() { throw new NotImplementedException(); } /// Returns a literal value associated with the property by a compiler. /// The literal value associated with the property. If the literal value is a class type with an element value of zero, the return value is null. /// The Constant table in unmanaged metadata does not contain a constant value for the current property. /// The type of the value is not one of the types permitted by the Common Language Specification (CLS). See the Standard ECMA-335 - Common Language Infrastructure (CLI) specification, Partition II. // Token: 0x06001FDA RID: 8154 RVA: 0x00074558 File Offset: 0x00072758 [MonoTODO("Not implemented")] public virtual object GetRawConstantValue() { throw new NotImplementedException(); } /// Gets a object representing the type. /// A object representing the type. // Token: 0x06001FDB RID: 8155 RVA: 0x00074560 File Offset: 0x00072760 virtual Type System.Runtime.InteropServices._PropertyInfo.GetType() { return base.GetType(); } } }