private void RegisterFileBuilders() { FileBuilderRunner .Add(new SingleFileBuilder(TypeMaps, Config)) .With(new CollectionFileBuilder(TypeMaps, Config) , n => n.With(new CollectionObjectFileBuilder(TypeMaps, Config)) ) .With(new SingleOneArgFileBuilder(TypeMaps, Config)); }
public Dictionary <TypePair, CompiledDelegate> CompileMapsToAssembly() { List <string> sourceCodes; HashSet <string> locations; FileBuilderRunner.BuildCode(out sourceCodes, out locations); var storageCodes = BuildStorageCode(); sourceCodes = sourceCodes.Union(storageCodes).ToList(); PrintSourceCode(sourceCodes); CSharpCompilation compilation = MapperTypeBuilder.CreateCompilation(sourceCodes.ToArray(), locations); Assembly assembly = MapperTypeBuilder.CreateAssembly(compilation); InitStorages(TypeMaps, assembly); var delegateCache = CreateDelegateCache(TypeMaps, assembly); return(delegateCache); }