1 // System.Reflection/TypeDelegator.cs
3 // Paolo Molaro (lupus@ximian.com)
5 // (C) 2002 Ximian, Inc.
8 using System.Reflection;
9 using System.Globalization;
11 namespace System.Reflection {
14 public class TypeDelegator : Type {
15 protected Type typeImpl;
17 protected TypeDelegator () {
20 public TypeDelegator( Type delegatingType)
22 if (delegatingType == null)
23 throw new ArgumentNullException ("delegatingType must be non-null");
24 typeImpl = delegatingType;
27 public override Assembly Assembly {
28 get { return typeImpl.Assembly; }
31 public override string AssemblyQualifiedName {
32 get { return typeImpl.AssemblyQualifiedName; }
35 public override Type BaseType {
36 get { return typeImpl.BaseType; }
39 public override string FullName {
40 get { return typeImpl.FullName; }
43 public override Guid GUID {
44 get { return typeImpl.GUID; }
47 public override Module Module {
48 get { return typeImpl.Module; }
51 public override string Name {
52 get { return typeImpl.Name; }
55 public override string Namespace {
56 get { return typeImpl.Namespace; }
59 public override RuntimeTypeHandle TypeHandle {
60 get { return typeImpl.TypeHandle; }
63 public override Type UnderlyingSystemType {
64 get { return typeImpl.UnderlyingSystemType; }
67 protected override TypeAttributes GetAttributeFlagsImpl ()
69 throw new NotImplementedException ();
70 //return typeImpl.GetAttributeFlagsImpl ();
73 protected override ConstructorInfo GetConstructorImpl (
74 BindingFlags bindingAttr, Binder binder, CallingConventions cc,
75 Type[] types, ParameterModifier[] modifiers)
77 throw new NotImplementedException ();
78 //return typeImpl.GetConstructorImpl (bindingAttr, binder, callConvention, types, modifiers);
81 public override ConstructorInfo[] GetConstructors( BindingFlags bindingAttr)
83 return typeImpl.GetConstructors (bindingAttr);
86 public override object[] GetCustomAttributes (bool inherit)
88 return typeImpl.GetCustomAttributes (inherit);
91 public override object[] GetCustomAttributes (Type attributeType, bool inherit)
93 return typeImpl.GetCustomAttributes (attributeType, inherit);
96 public override Type GetElementType()
98 return typeImpl.GetElementType ();
101 public override EventInfo GetEvent( string name, BindingFlags bindingAttr)
103 return typeImpl.GetEvent (name, bindingAttr);
106 public override EventInfo[] GetEvents()
108 return GetEvents (BindingFlags.Public);
111 public override EventInfo[] GetEvents (BindingFlags bindingAttr)
113 return typeImpl.GetEvents (bindingAttr);
116 public override FieldInfo GetField (string name, BindingFlags bindingAttr)
118 return typeImpl.GetField (name, bindingAttr);
121 public override FieldInfo[] GetFields( BindingFlags bindingAttr)
123 return typeImpl.GetFields (bindingAttr);
126 public override Type GetInterface( string name, bool ignoreCase)
128 return typeImpl.GetInterface (name, ignoreCase);
131 public override InterfaceMapping GetInterfaceMap( Type interfaceType)
133 return typeImpl.GetInterfaceMap (interfaceType);
136 public override Type[] GetInterfaces ()
138 return typeImpl.GetInterfaces ();
141 public override MemberInfo[] GetMember( string name, MemberTypes type, BindingFlags bindingAttr)
143 return typeImpl.GetMember (name, type, bindingAttr);
146 public override MemberInfo[] GetMembers( BindingFlags bindingAttr)
148 return typeImpl.GetMembers (bindingAttr);
151 protected override MethodInfo GetMethodImpl( string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)
153 throw new NotImplementedException ();
154 //return typeImpl.GetMethodImpl (name, bindingAttr, binder, callConvention, types, modifiers);
157 public override MethodInfo[] GetMethods( BindingFlags bindingAttr)
159 return typeImpl.GetMethods (bindingAttr);
162 public override Type GetNestedType( string name, BindingFlags bindingAttr)
164 return typeImpl.GetNestedType (name, bindingAttr);
167 public override Type[] GetNestedTypes( BindingFlags bindingAttr)
169 return typeImpl.GetNestedTypes (bindingAttr);
172 public override PropertyInfo[] GetProperties( BindingFlags bindingAttr)
174 return typeImpl.GetProperties (bindingAttr);
177 protected override PropertyInfo GetPropertyImpl( string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
179 throw new NotImplementedException ();
180 //return typeImpl.GetPropertyImpl (name, bindingAttr, bindingAttr, returnType, types, modifiers);
183 protected override bool HasElementTypeImpl()
185 throw new NotImplementedException ();
186 //return typeImpl.HasElementTypeImpl ();
189 public override object InvokeMember( string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters) {
190 return typeImpl.InvokeMember (name, invokeAttr, binder, target, args, modifiers, culture, namedParameters);
193 protected override bool IsArrayImpl()
195 throw new NotImplementedException ();
196 //return typeImpl.IsArrayImpl ();
199 protected override bool IsByRefImpl()
201 throw new NotImplementedException ();
202 //return typeImpl.IsByRefImpl ();
205 protected override bool IsCOMObjectImpl()
207 throw new NotImplementedException ();
208 //return typeImpl.IsCOMObjectImpl ();
211 public override bool IsDefined( Type attributeType, bool inherit) {
212 return typeImpl.IsDefined (attributeType, inherit);
215 protected override bool IsPointerImpl()
217 throw new NotImplementedException ();
218 //return typeImpl.IsPointerImpl ();
221 protected override bool IsPrimitiveImpl()
223 throw new NotImplementedException ();
224 //return typeImpl.IsPrimitiveImpl ();
227 protected override bool IsValueTypeImpl()
229 throw new NotImplementedException ();
230 //return typeImpl.IsValueTypeImpl ();
233 public override bool HasGenericArguments {
235 throw new NotImplementedException ();
239 public override bool ContainsGenericParameters {
241 throw new NotImplementedException ();
245 public override bool IsGenericParameter {
247 throw new NotImplementedException ();
251 public override int GenericParameterPosition {
253 throw new NotImplementedException ();
257 public override MethodInfo DeclaringMethod {
259 throw new NotImplementedException ();