Exemple #1
0
        private static string GenerateType(AssemblyName name, ModuleBuilder moduleBuilder)
        {
            var typeName = name.Name + "." + MethodBaseExtensionsGetCallingConventionsTests.TypeName;

            var typeBuilder = moduleBuilder.DefineType(
                typeName, TypeAttributes.Class | TypeAttributes.Public,
                typeof(object));

            typeBuilder.GenerateConstructor();
            MethodBaseExtensionsGetCallingConventionsTests.GenerateMethods(typeBuilder);
            typeBuilder.CreateType();
            return(typeName);
        }
Exemple #2
0
        static MethodBaseExtensionsGetCallingConventionsTests()
        {
            var name = new AssemblyName();

            name.Name    = MethodBaseExtensionsGetCallingConventionsTests.AssemblyName;
            name.Version = new Version(1, 0, 0, 0);
            var fileName = name.Name + ".dll";

            var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(
                name, AssemblyBuilderAccess.Save);

            var moduleBuilder = assemblyBuilder.DefineDynamicModule(name.Name, fileName, false);

            var typeName = MethodBaseExtensionsGetCallingConventionsTests.GenerateType(name, moduleBuilder);

            assemblyBuilder.Save(fileName);
            AssemblyVerification.Verify(assemblyBuilder);

            MethodBaseExtensionsGetCallingConventionsTests.Type = assemblyBuilder.GetType(typeName);
        }
Exemple #3
0
 private static void GenerateMethods(TypeBuilder typeBuilder)
 {
     MethodBaseExtensionsGetCallingConventionsTests.GenerateVarArgMethod(typeBuilder);
     MethodBaseExtensionsGetCallingConventionsTests.GenerateExplicitThisMethod(typeBuilder);
 }