using System; using System.Globalization; using System.Runtime.CompilerServices; using System.Runtime.Serialization; namespace System.Reflection { // Token: 0x02000255 RID: 597 [Serializable] internal class MonoField : FieldInfo, ISerializable { // Token: 0x170005B4 RID: 1460 // (get) Token: 0x06001EE6 RID: 7910 RVA: 0x00071BF4 File Offset: 0x0006FDF4 public override FieldAttributes Attributes { get { return this.attrs; } } // Token: 0x170005B5 RID: 1461 // (get) Token: 0x06001EE7 RID: 7911 RVA: 0x00071BFC File Offset: 0x0006FDFC public override RuntimeFieldHandle FieldHandle { get { return this.fhandle; } } // Token: 0x170005B6 RID: 1462 // (get) Token: 0x06001EE8 RID: 7912 RVA: 0x00071C04 File Offset: 0x0006FE04 public override Type FieldType { get { return this.type; } } // Token: 0x06001EE9 RID: 7913 [MethodImpl(MethodImplOptions.InternalCall)] private extern Type GetParentType(bool declaring); // Token: 0x170005B7 RID: 1463 // (get) Token: 0x06001EEA RID: 7914 RVA: 0x00071C0C File Offset: 0x0006FE0C public override Type ReflectedType { get { return this.GetParentType(false); } } // Token: 0x170005B8 RID: 1464 // (get) Token: 0x06001EEB RID: 7915 RVA: 0x00071C18 File Offset: 0x0006FE18 public override Type DeclaringType { get { return this.GetParentType(true); } } // Token: 0x170005B9 RID: 1465 // (get) Token: 0x06001EEC RID: 7916 RVA: 0x00071C24 File Offset: 0x0006FE24 public override string Name { get { return this.name; } } // Token: 0x06001EED RID: 7917 RVA: 0x00071C2C File Offset: 0x0006FE2C public override bool IsDefined(Type attributeType, bool inherit) { return MonoCustomAttrs.IsDefined(this, attributeType, inherit); } // Token: 0x06001EEE RID: 7918 RVA: 0x00071C38 File Offset: 0x0006FE38 public override object[] GetCustomAttributes(bool inherit) { return MonoCustomAttrs.GetCustomAttributes(this, inherit); } // Token: 0x06001EEF RID: 7919 RVA: 0x00071C44 File Offset: 0x0006FE44 public override object[] GetCustomAttributes(Type attributeType, bool inherit) { return MonoCustomAttrs.GetCustomAttributes(this, attributeType, inherit); } // Token: 0x06001EF0 RID: 7920 [MethodImpl(MethodImplOptions.InternalCall)] internal override extern int GetFieldOffset(); // Token: 0x06001EF1 RID: 7921 [MethodImpl(MethodImplOptions.InternalCall)] private extern object GetValueInternal(object obj); // Token: 0x06001EF2 RID: 7922 RVA: 0x00071C50 File Offset: 0x0006FE50 public override object GetValue(object obj) { if (!this.IsStatic) { if (obj == null) { throw new TargetException("Non-static field requires a target"); } if (!this.DeclaringType.IsAssignableFrom(obj.GetType())) { throw new ArgumentException(string.Format("Field {0} defined on type {1} is not a field on the target object which is of type {2}.", this.Name, this.DeclaringType, obj.GetType()), "obj"); } } if (!this.IsLiteral) { this.CheckGeneric(); } return this.GetValueInternal(obj); } // Token: 0x06001EF3 RID: 7923 RVA: 0x00071CD0 File Offset: 0x0006FED0 public override string ToString() { return string.Format("{0} {1}", this.type, this.name); } // Token: 0x06001EF4 RID: 7924 [MethodImpl(MethodImplOptions.InternalCall)] private static extern void SetValueInternal(FieldInfo fi, object obj, object value); // Token: 0x06001EF5 RID: 7925 RVA: 0x00071CE8 File Offset: 0x0006FEE8 public override void SetValue(object obj, object val, BindingFlags invokeAttr, Binder binder, CultureInfo culture) { if (!this.IsStatic) { if (obj == null) { throw new TargetException("Non-static field requires a target"); } if (!this.DeclaringType.IsAssignableFrom(obj.GetType())) { throw new ArgumentException(string.Format("Field {0} defined on type {1} is not a field on the target object which is of type {2}.", this.Name, this.DeclaringType, obj.GetType()), "obj"); } } if (this.IsLiteral) { throw new FieldAccessException("Cannot set a constant field"); } if (binder == null) { binder = Binder.DefaultBinder; } this.CheckGeneric(); if (val != null) { object obj2 = binder.ChangeType(val, this.type, culture); if (obj2 == null) { throw new ArgumentException(string.Concat(new object[] { "Object type ", val.GetType(), " cannot be converted to target type: ", this.type }), "val"); } val = obj2; } MonoField.SetValueInternal(this, obj, val); } // Token: 0x06001EF6 RID: 7926 RVA: 0x00071DD8 File Offset: 0x0006FFD8 internal MonoField Clone(string newName) { return new MonoField { name = newName, type = this.type, attrs = this.attrs, klass = this.klass, fhandle = this.fhandle }; } // Token: 0x06001EF7 RID: 7927 RVA: 0x00071E24 File Offset: 0x00070024 public void GetObjectData(SerializationInfo info, StreamingContext context) { MemberInfoSerializationHolder.Serialize(info, this.Name, this.ReflectedType, this.ToString(), MemberTypes.Field); } // Token: 0x06001EF8 RID: 7928 [MethodImpl(MethodImplOptions.InternalCall)] public override extern object GetRawConstantValue(); // Token: 0x06001EF9 RID: 7929 RVA: 0x00071E4C File Offset: 0x0007004C private void CheckGeneric() { if (this.DeclaringType.ContainsGenericParameters) { throw new InvalidOperationException("Late bound operations cannot be performed on fields with types for which Type.ContainsGenericParameters is true."); } } // Token: 0x04000ABC RID: 2748 internal IntPtr klass; // Token: 0x04000ABD RID: 2749 internal RuntimeFieldHandle fhandle; // Token: 0x04000ABE RID: 2750 private string name; // Token: 0x04000ABF RID: 2751 private Type type; // Token: 0x04000AC0 RID: 2752 private FieldAttributes attrs; } }