1
// -----------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -----------------------------------------------------------------------
5 using System
.Reflection
;
6 using Microsoft
.Internal
;
7 using System
.Threading
;
9 namespace System
.ComponentModel
.Composition
.ReflectionModel
11 internal class ReflectionField
: ReflectionWritableMember
13 private readonly FieldInfo _field
;
15 public ReflectionField(FieldInfo field
)
17 Assumes
.NotNull(field
);
22 public FieldInfo UndelyingField
24 get { return this._field; }
27 public override MemberInfo UnderlyingMember
29 get { return this.UndelyingField; }
32 public override bool CanRead
37 public override bool CanWrite
39 get { return !this.UndelyingField.IsInitOnly; }
42 public override bool RequiresInstance
44 get { return !this.UndelyingField.IsStatic; }
47 public override Type ReturnType
49 get { return this.UndelyingField.FieldType; }
52 public override ReflectionItemType ItemType
54 get { return ReflectionItemType.Field; }
57 public override object GetValue(object instance
)
59 return this.UndelyingField
.SafeGetValue(instance
);
62 public override void SetValue(object instance
, object value)
64 this.UndelyingField
.SafeSetValue(instance
, value);