/// <summary> /// Initializes the module. /// </summary> public static void Initialize() { lock (initLock) { if (isInitialized) { return; } var builder = new ContainerBuilder(); builder.RegisterAssemblyModules(typeof(AutofacModule).GetTypeInfo().Assembly); // AutoMapper var amConf = new MapperConfiguration(cfg => { cfg.AddProfile(new AutoMapperProfile()); }); builder.Register((ctx, parms) => amConf.CreateMapper()); // Autofac Container container = builder.Build(); isInitialized = true; // Load coin templates var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location); var defaultDefinitions = Path.Combine(basePath, "coins.json"); var coinDefs = new[] { defaultDefinitions }; coinTemplates = CoinTemplateLoader.Load(container, coinDefs); Cryptonight.InitContexts(1); } }