[Mono-bugs] [Bug 389116] New: TypeBuilder: TypeLoadException is not reported when interface implementation is missing

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sat May 10 15:40:58 EDT 2008


           Summary: TypeBuilder: TypeLoadException is not reported when
                    interface implementation is missing
           Product: Mono: Class Libraries
           Version: SVN
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: CORLIB
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: gert.driesen at pandora.be
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---

Currently, TypeBuilder.CreateType does not throw a TypeLoadException when one
of its methods - which implements an interface method - does not have a body.

To reproduce, compile and run the following code:

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

class Program
        static void Main ()
                AssemblyName assemblyName = new AssemblyName ();
                assemblyName.Name = "lib";

                AssemblyBuilder ab =
AppDomain.CurrentDomain.DefineDynamicAssembly (
                        assemblyName, AssemblyBuilderAccess.RunAndSave,
                ModuleBuilder mb = ab.DefineDynamicModule ("lib.dll");

                TypeBuilder tb = mb.DefineType ("TheType",
                        typeof (object), new Type [] { typeof (IRunner) });
                tb.CreateType ();

public interface IRunner
        void Create (int interval);

Expected result:

Unhandled Exception: System.TypeLoadException: Method 'Create' in type
 from assembly 'lib, Version=, Culture=neutral, PublicKeyToken=null'
 not have an implementation.
   at System.Reflection.Emit.TypeBuilder._TermCreateClass(Int32 handle, Module
   at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
   at System.Reflection.Emit.TypeBuilder.CreateType()
   at Program.Main()

Actual result:

Successful completion.

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