Exemple #1
0
        public IModuleBuilder CreateModuleBuilder(string assemblyName, string assemblyDirectoryOrNull, bool strongNamed, string keyFilePathOrNull)
        {
            ArgumentUtility.CheckNotNullOrEmpty("assemblyName", assemblyName);

            var assemName = new AssemblyName(assemblyName);

            if (strongNamed)
            {
                assemName.KeyPair = GetKeyPair(keyFilePathOrNull);
            }
            var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.RunAndSave, assemblyDirectoryOrNull);

            var moduleName    = assemblyName + ".dll";
            var moduleBuilder = assemblyBuilder.DefineDynamicModule(moduleName, emitSymbolInfo: true);

            var moduleBuilderAdapter = new ModuleBuilderAdapter(moduleBuilder);

            var typePipeAttribute = new CustomAttributeDeclaration(s_typePipeAssemblyAttributeCtor, new object[] { _participantConfigurationID });

            moduleBuilderAdapter.AssemblyBuilder.SetCustomAttribute(typePipeAttribute);

            return(moduleBuilderAdapter);
        }
        public IModuleBuilder CreateModuleBuilder(string assemblyName, string assemblyDirectoryOrNull, bool strongNamed, string keyFilePathOrNull)
        {
            ArgumentUtility.CheckNotNullOrEmpty("assemblyName", assemblyName);

            var assemName = new AssemblyName(assemblyName);

            if (strongNamed)
            {
#if FEATURE_STRONGNAMESIGNING
                assemName.KeyPair = GetKeyPair(keyFilePathOrNull);
#else
                throw new PlatformNotSupportedException();
#endif
            }

#if FEATURE_ASSEMBLYBUILDER_SAVE
            var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.RunAndSave, assemblyDirectoryOrNull);
#else
            var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.Run);
#endif

            var moduleName = assemblyName + ".dll";

#if FEATURE_PDBEMIT
            var moduleBuilder = assemblyBuilder.DefineDynamicModule(moduleName, emitSymbolInfo: true);
#else
            var moduleBuilder = assemblyBuilder.DefineDynamicModule(moduleName);
#endif

            var moduleBuilderAdapter = new ModuleBuilderAdapter(moduleBuilder);

            var typePipeAttribute = new CustomAttributeDeclaration(s_typePipeAssemblyAttributeCtor, new object[] { _participantConfigurationID });
            moduleBuilderAdapter.AssemblyBuilder.SetCustomAttribute(typePipeAttribute);

            return(moduleBuilderAdapter);
        }