FieldInfo.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. //
  2. // System.Reflection.FieldInfo.cs
  3. //
  4. // Author:
  5. // Miguel de Icaza ([email protected])
  6. //
  7. // (C) Ximian, Inc. http://www.ximian.com
  8. //
  9. // TODO: Mucho left to implement.
  10. //
  11. using System;
  12. using System.Reflection;
  13. using System.Reflection.Emit;
  14. using System.Globalization;
  15. using System.Runtime.CompilerServices;
  16. namespace System.Reflection {
  17. [Serializable]
  18. public abstract class FieldInfo : MemberInfo {
  19. public abstract FieldAttributes Attributes {get;}
  20. public abstract RuntimeFieldHandle FieldHandle {get;}
  21. public abstract Type FieldType { get; }
  22. public abstract object GetValue(object obj);
  23. public override MemberTypes MemberType {
  24. get { return MemberTypes.Field;}
  25. }
  26. public bool IsLiteral
  27. {
  28. get {return (Attributes & FieldAttributes.Literal) != 0;}
  29. }
  30. public bool IsStatic
  31. {
  32. get {return (Attributes & FieldAttributes.Static) != 0;}
  33. }
  34. public bool IsInitOnly
  35. {
  36. get {return (Attributes & FieldAttributes.InitOnly) != 0;}
  37. }
  38. public Boolean IsPublic
  39. {
  40. get
  41. {
  42. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Public;
  43. }
  44. }
  45. public Boolean IsPrivate
  46. {
  47. get
  48. {
  49. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Private;
  50. }
  51. }
  52. public Boolean IsFamily
  53. {
  54. get
  55. {
  56. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Family;
  57. }
  58. }
  59. public Boolean IsAssembly
  60. {
  61. get
  62. {
  63. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.Assembly;
  64. }
  65. }
  66. public Boolean IsFamilyAndAssembly
  67. {
  68. get {
  69. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.FamANDAssem;
  70. }
  71. }
  72. public Boolean IsFamilyOrAssembly
  73. {
  74. get
  75. {
  76. return (Attributes & FieldAttributes.FieldAccessMask) == FieldAttributes.FamORAssem;
  77. }
  78. }
  79. public Boolean IsPinvokeImpl
  80. {
  81. get
  82. {
  83. return (Attributes & FieldAttributes.PinvokeImpl) == FieldAttributes.PinvokeImpl;
  84. }
  85. }
  86. public Boolean IsSpecialName
  87. {
  88. get
  89. {
  90. return (Attributes & FieldAttributes.SpecialName) == FieldAttributes.SpecialName;
  91. }
  92. }
  93. public Boolean IsNotSerialized
  94. {
  95. get
  96. {
  97. return (Attributes & FieldAttributes.NotSerialized) == FieldAttributes.NotSerialized;
  98. }
  99. }
  100. public abstract void SetValue (object obj, object val, BindingFlags invokeAttr, Binder binder, CultureInfo culture);
  101. public void SetValue (object obj, object value)
  102. {
  103. SetValue (obj, value, 0, null, null);
  104. }
  105. }
  106. }