Ejemplo n.º 1
0
        protected void given_package_assembly(string exportName, Expression <Action <FluentAssemblyBuilder> > assembly)
        {
            var assemblyName = assembly.Parameters[0].Name;
            var builtTypes   = new Expression <Action <FluentTypeBuilder> > [0];
            FluentAssemblyBuilder builder = types => builtTypes = types;

            assembly.Compile()(builder);
            _exports
            .GetOrCreate(exportName)
            [assemblyName] = builtTypes;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets or creates an <see cref="AssemblyBuilder"/> and <see cref="ModuleBuilder"/> pair.
        /// </summary>
        /// <param name="assemblyName">The name of the assembly builder.</param>
        /// <returns>An assembly builder instance.</returns>
        public IAssemblyBuilder GetOrCreateAssemblyBuilder(string assemblyName)
        {
            FluentAssemblyBuilder impl;

            if (this.cache.TryGetValue(assemblyName, out impl) == false)
            {
                AssemblyName name    = new AssemblyName(assemblyName);
                var          builder = AssemblyBuilder.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndCollect);
                impl = new FluentAssemblyBuilder(builder);
                this.cache.Add(assemblyName, impl);
            }

            return(impl);
        }