[Mono-bugs] [Bug 640780] New: TypeLoadException when implementing interface with static method in dynamic assembly

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Sep 21 07:06:24 EDT 2010


https://bugzilla.novell.com/show_bug.cgi?id=640780

https://bugzilla.novell.com/show_bug.cgi?id=640780#c0


           Summary: TypeLoadException when implementing interface with
                    static method in dynamic assembly
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.8.x
          Platform: x86
        OS/Version: Windows 7
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: CORLIB
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: jeroen at sumatra.nl
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64;
Trident/5.0)

Repro:

using System;
using System.Reflection;
using System.Reflection.Emit;

public class Program
{
    static void Main()
    {
        AssemblyBuilder ab = AppDomain.CurrentDomain.DefineDynamicAssembly(new
AssemblyName("Dummy"), AssemblyBuilderAccess.Run);
        ModuleBuilder modb = ab.DefineDynamicModule("Dummy");

        TypeBuilder tb1 = modb.DefineType("Interface", TypeAttributes.Interface
| TypeAttributes.Abstract);
        tb1.DefineTypeInitializer().GetILGenerator().Emit(OpCodes.Ret);
        tb1.DefineMethod("m", MethodAttributes.Public |
MethodAttributes.Virtual | MethodAttributes.Abstract);
        tb1.CreateType();

        TypeBuilder tb2 = modb.DefineType("Class", TypeAttributes.Sealed);
        tb2.AddInterfaceImplementation(tb1);
        tb2.DefineMethod("m", MethodAttributes.Public |
MethodAttributes.Virtual)
            .GetILGenerator().Emit(OpCodes.Ret);
        tb2.DefineDefaultConstructor(MethodAttributes.Public);

        Activator.CreateInstance(tb2.CreateType());
    }
}


Reproducible: Always

Steps to Reproduce:
Compile & Run
Actual Results:  
Unhandled Exception: System.TypeLoadException: Could not load type 'Class' from
assembly 'Dummy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags
invok
eAttr, System.Reflection.Binder binder, System.Object[] parameters,
System.Globa
lization.CultureInfo culture) [0x00000] in <filename unknown>:0
  at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr,
System.Refle
ction.Binder binder, System.Object[] parameters,
System.Globalization.CultureInf
o culture) [0x00000] in <filename unknown>:0
  at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters)
[0x00
000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic)
[0x00
000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename
u
nknown>:0
  at Program.Main () [0x00000] in <filename unknown>:0

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list