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 private extern object GetValueInternal (object obj);
88 public override object GetValue (object obj)
90 return GetValueInternal (obj);
93 public override string ToString () {
95 MonoFieldInfo.get_field_info (this, out info);
96 return String.Format ("{0} {1}", info.type, info.name);
100 public override void SetValue (object obj, object val, BindingFlags invokeAttr, Binder binder, CultureInfo culture)