Merge pull request #496 from nicolas-raoul/unit-test-for-issue2907
[mono.git] / mcs / class / corlib / System.Runtime.InteropServices / _PropertyInfo.cs
1 //
2 // System.Runtime.InteropServices._PropertyInfo interface
3 //
4 // Author:
5 //   Kazuki Oikawa  (kazuki@panicode.com)
6 //
7
8 using System;
9 using System.Globalization;
10 using System.Reflection;
11
12 namespace System.Runtime.InteropServices
13 {
14         [CLSCompliant (false)]
15         [InterfaceType (ComInterfaceType.InterfaceIsIUnknown)]
16         [Guid ("F59ED4E4-E68F-3218-BD77-061AA82824BF")]
17 #if !FULL_AOT_RUNTIME
18         [TypeLibImportClass (typeof (PropertyInfo))]
19 #endif
20         [ComVisible (true)]
21         public interface _PropertyInfo
22         {
23                 bool Equals (object other);
24
25                 MethodInfo[] GetAccessors ();
26
27                 MethodInfo[] GetAccessors (bool nonPublic);
28
29                 object[] GetCustomAttributes (bool inherit);
30
31                 object[] GetCustomAttributes (Type attributeType, bool inherit);
32
33                 MethodInfo GetGetMethod ();
34
35                 MethodInfo GetGetMethod (bool nonPublic);
36
37                 int GetHashCode ();
38
39                 ParameterInfo[] GetIndexParameters ();
40
41                 MethodInfo GetSetMethod ();
42
43                 MethodInfo GetSetMethod (bool nonPublic);
44
45                 void GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId);
46
47                 void GetTypeInfo (uint iTInfo, uint lcid, IntPtr ppTInfo);
48
49                 void GetTypeInfoCount (out uint pcTInfo);
50
51                 void Invoke (uint dispIdMember, [In] ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams,
52                         IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr);
53
54                 Type GetType ();
55
56                 object GetValue (object obj, object[] index);
57
58                 object GetValue (object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);
59
60                 bool IsDefined (Type attributeType, bool inherit);
61
62                 void SetValue (object obj, object value, object[] index);
63
64                 void SetValue (object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture);
65                 
66                 string ToString ();
67
68                 PropertyAttributes Attributes {get;}
69
70                 bool CanRead {get;}
71
72                 bool CanWrite {get;}
73
74                 Type DeclaringType {get;}
75
76                 bool IsSpecialName {get;}
77
78                 MemberTypes MemberType {get;}
79
80                 string Name {get;}
81
82                 Type PropertyType {get;}
83
84                 Type ReflectedType {get;}
85         }
86 }