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;
13 using System.Runtime.InteropServices;
15 namespace System.Reflection {
17 [ClassInterface(ClassInterfaceType.AutoDual)]
18 public abstract class PropertyInfo : MemberInfo {
20 public abstract PropertyAttributes Attributes { get; }
21 public abstract bool CanRead { get; }
22 public abstract bool CanWrite { get; }
24 public bool IsSpecialName {
25 get {return (Attributes & PropertyAttributes.SpecialName) != 0;}
28 public override MemberTypes MemberType {
29 get {return MemberTypes.Property;}
31 public abstract Type PropertyType { get; }
33 protected PropertyInfo () { }
35 public MethodInfo[] GetAccessors ()
37 return GetAccessors (false);
40 public abstract MethodInfo[] GetAccessors (bool nonPublic);
42 public MethodInfo GetGetMethod()
44 return GetGetMethod (false);
46 public abstract MethodInfo GetGetMethod(bool nonPublic);
48 public abstract ParameterInfo[] GetIndexParameters();
50 public MethodInfo GetSetMethod()
52 return GetSetMethod (false);
55 public abstract MethodInfo GetSetMethod (bool nonPublic);
57 public virtual object GetValue (object obj, object[] index)
59 return GetValue(obj, BindingFlags.Default, null, index, null);
62 public abstract object GetValue (object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);
64 public virtual void SetValue (object obj, object value, object[] index)
66 SetValue (obj, value, BindingFlags.Default, null, index, null);
69 public abstract void SetValue (object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);