update MEF to preview 9
[mcs.git] / class / System.ComponentModel.Composition / src / ComponentModel / System / ComponentModel / Composition / ReflectionModel / ReflectionField.cs
blob38879361ce2772b7ad1fd9869624c8f5a6e11091
1 // -----------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 // -----------------------------------------------------------------------
4 using System;
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);
19 this._field = 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
34 get { return true; }
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);