a7013ffb5d4450be69553a901c1830b152614afe
[mono.git] / mcs / class / corlib / System.Reflection / IReflect.cs
1 //
2 // System.Reflection.IReflect.cs
3 //
4 // Author:
5 //   Miguel de Icaza (miguel@ximian.com)
6 //
7 // (C) Ximian, Inc.  http://www.ximian.com
8 //
9 // TODO: Mucho left to implement.
10 //
11
12 using System;
13 using System.Globalization;
14 using System.Runtime.InteropServices;
15
16 namespace System.Reflection {
17
18         [Guid("AFBF15E5-C37C-11d2-B88E-00A0C9B471B8")]
19         public interface IReflect {
20
21                 Type UnderlyingSystemType {
22                         get;
23                 }
24
25                 FieldInfo    GetField   (string name, BindingFlags binding_attr);
26                 FieldInfo [] GetFields  (BindingFlags binding_attr);
27                 MemberInfo[] GetMember  (string name, BindingFlags binding_attr);
28                 MemberInfo[] GetMembers (BindingFlags binding_attr);
29                 MethodInfo   GetMethod  (string name, BindingFlags binding_attr);
30                 MethodInfo   GetMethod  (string name, BindingFlags binding_attr,
31                                          Binder binder, Type [] types, ParameterModifier [] modifiers);
32                 MethodInfo[] GetMethods (BindingFlags binding_attr);
33
34                 PropertyInfo [] GetProperties (BindingFlags binding_attr);
35                 PropertyInfo    GetProperty   (string name, BindingFlags binding_attr);
36                 PropertyInfo    GetProperty   (string name, BindingFlags binding_attr,
37                                                Binder binder, Type return_type, Type [] types,
38                                                ParameterModifier [] modifiers);
39
40                 object InvokeMember (string name, BindingFlags invoke_attr,
41                                      Binder binder, object target, object [] args,
42                                      ParameterModifier [] modifiers,
43                                      CultureInfo culture,
44                                      string [] named_parameters);
45                                      
46         }
47 }