2 // System.Reflection/PropertyInfo.cs
5 // Paolo Molaro (lupus@ximian.com)
7 // (C) 2001 Ximian, Inc. http://www.ximian.com
11 using System.Reflection;
12 using System.Globalization;
14 namespace System.Reflection {
16 public abstract class PropertyInfo : MemberInfo {
18 public abstract PropertyAttributes Attributes { get; }
19 public abstract bool CanRead { get; }
20 public abstract bool CanWrite { get; }
22 public bool IsSpecialName {
23 get {return (Attributes & PropertyAttributes.SpecialName) != 0;}
26 public override MemberTypes MemberType {
27 get {return MemberTypes.Property;}
29 public abstract Type PropertyType { get; }
31 protected PropertyInfo () { }
33 public MethodInfo[] GetAccessors ()
35 return GetAccessors (false);
38 public abstract MethodInfo[] GetAccessors (bool nonPublic);
40 public MethodInfo GetGetMethod()
42 return GetGetMethod (false);
44 public abstract MethodInfo GetGetMethod(bool nonPublic);
46 public abstract ParameterInfo[] GetIndexParameters();
48 public MethodInfo GetSetMethod()
50 return GetSetMethod (false);
53 public abstract MethodInfo GetSetMethod (bool nonPublic);
55 public virtual object GetValue (object obj, object[] index)
57 return GetValue(obj, BindingFlags.Default, null, index, null);
60 public abstract object GetValue (object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);
62 public virtual void SetValue (object obj, object value, object[] index)
64 SetValue (obj, value, BindingFlags.Default, null, index, null);
67 public abstract void SetValue (object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);