2010-04-01 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 1 Apr 2010 17:37:52 +0000 (17:37 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 1 Apr 2010 17:37:52 +0000 (17:37 -0000)
* ModuleBuilder.cs: Implement ResolveType.

svn path=/trunk/mcs/; revision=154663

mcs/class/corlib/System.Reflection.Emit/ChangeLog
mcs/class/corlib/System.Reflection.Emit/ModuleBuilder.cs

index 40e5fa3cf5ab01ca8ac6ac00bfabde8a2786c3bc..b0ab596e552c6d7721fadd5561f35fa68dea30f0 100644 (file)
@@ -1,3 +1,7 @@
+2010-04-01 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ModuleBuilder.cs: Implement ResolveType.
+
 2010-04-01 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * ModuleBuilder.cs: Implement GetMethodImpl.
index 9984eaf6d0e474fe7a7bb55e5c66d18c58010954..1d642dc4bd472e6af59766e32d0a99b524007e50 100644 (file)
@@ -843,6 +843,16 @@ namespace System.Reflection.Emit {
                                return global_type_created.GetMethod (name);
                        return global_type_created.GetMethod (name, bindingAttr, binder, callConvention, types, modifiers);
                }
+
+               public override Type ResolveType (int metadataToken, Type [] genericTypeArguments, Type [] genericMethodArguments) {
+                       ResolveTokenError error;
+
+                       IntPtr handle = ResolveTypeToken (_impl, metadataToken, ptrs_from_types (genericTypeArguments), ptrs_from_types (genericMethodArguments), out error);
+                       if (handle == IntPtr.Zero)
+                               throw resolve_token_exception (metadataToken, error, "Type");
+                       else
+                               return Type.GetTypeFromHandle (new RuntimeTypeHandle (handle));
+               }
 #endif
        }