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

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

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

            name.Name    = MethodBaseExtensionsGetAttributesTests.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         = MethodBaseExtensionsGetAttributesTests.GenerateType(name, moduleBuilder);
            var typeAbstractName = MethodBaseExtensionsGetAttributesTests.GenerateAbstractType(name, moduleBuilder);

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

            MethodBaseExtensionsGetAttributesTests.AbstractType = assemblyBuilder.GetType(typeAbstractName);
            MethodBaseExtensionsGetAttributesTests.Type         = assemblyBuilder.GetType(typeName);
        }
Example #3
0
 private static void GenerateMethods(TypeBuilder typeBuilder)
 {
     MethodBaseExtensionsGetAttributesTests.GeneratePrivateStaticMethod(typeBuilder);
     MethodBaseExtensionsGetAttributesTests.GeneratePublicInstanceHideBySigNewSlotVirtualMethod(typeBuilder);
     MethodBaseExtensionsGetAttributesTests.GeneratePublicInstanceHideBySigNewSlotFinalMethod(typeBuilder);
 }
Example #4
0
 private static void GenerateAbstractMethods(TypeBuilder typeBuilder)
 {
     MethodBaseExtensionsGetAttributesTests.GenerateFamilyInstanceHideBySigAbstractNewSlotVirtualMethod(typeBuilder);
     MethodBaseExtensionsGetAttributesTests.GenerateFamilyAndAssemblyInstanceHideBySigAbstractNewSlotVirtualMethod(typeBuilder);
     MethodBaseExtensionsGetAttributesTests.GenerateFamilyOrAssemblyInstanceHideBySigAbstractNewSlotVirtualMethod(typeBuilder);
 }