예제 #1
0
        static AssemblyDefinition CreateAssembly(string assemblyName, Expression <Action <FluentTypeBuilder> >[] types)
        {
            var assembly = AssemblyDefinition.CreateAssembly(new AssemblyNameDefinition(assemblyName, "0.0.0.0".ToVersion()), assemblyName + ".dll", ModuleKind.Dll);

            foreach (var type in types)
            {
                var builder = new FluentTypeBuilder(assembly.MainModule, type.Parameters[0].Name);
                var config  = type.Compile();
                config(builder);
                var typeDef = (TypeDefinition)builder;
                assembly.MainModule.Types.Add(typeDef);
            }
            return(assembly);
        }
예제 #2
0
 static TypeAttributes GetTypeAttributes(FluentTypeBuilder builder)
 {
     return(builder._visibility | TypeAttributes.Class);
 }