3 // System.Reflection/MonoField.cs
4 // The class used to represent Fields from the mono runtime.
7 // Paolo Molaro (lupus@ximian.com)
9 // (C) 2001 Ximian, Inc. http://www.ximian.com
13 using System.Globalization;
14 using System.Runtime.CompilerServices;
15 using System.Runtime.InteropServices;
17 namespace System.Reflection {
19 internal struct MonoFieldInfo {
23 public FieldAttributes attrs;
25 [MethodImplAttribute(MethodImplOptions.InternalCall)]
26 internal static extern void get_field_info (MonoField field, out MonoFieldInfo info);
29 internal class MonoField : FieldInfo {
30 internal IntPtr klass;
31 internal RuntimeFieldHandle fhandle;
33 public override FieldAttributes Attributes {
36 MonoFieldInfo.get_field_info (this, out info);
40 public override RuntimeFieldHandle FieldHandle {
44 public override Type FieldType {
47 MonoFieldInfo.get_field_info (this, out info);
52 public override Type ReflectedType {
55 MonoFieldInfo.get_field_info (this, out info);
59 public override Type DeclaringType {
62 MonoFieldInfo.get_field_info (this, out info);
66 public override string Name {
69 MonoFieldInfo.get_field_info (this, out info);
74 public override bool IsDefined (Type attributeType, bool inherit) {
75 return MonoCustomAttrs.IsDefined (this, attributeType, inherit);
78 public override object[] GetCustomAttributes( bool inherit) {
79 return MonoCustomAttrs.GetCustomAttributes (this, inherit);
81 public override object[] GetCustomAttributes( Type attributeType, bool inherit) {
82 return MonoCustomAttrs.GetCustomAttributes (this, attributeType, inherit);
85 [MethodImplAttribute(MethodImplOptions.InternalCall)]
86 public extern override object GetValue(object obj);
88 public override string ToString () {
90 MonoFieldInfo.get_field_info (this, out info);
91 return String.Format ("{0} {1}", info.type, info.name);
95 public override void SetValue (object obj, object val, BindingFlags invokeAttr, Binder binder, CultureInfo culture)