/// <summary>
        /// AutoFacServiceProvider
        /// </summary>
        /// <param name="services"></param>
        /// <param name="connectionString"></param>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static AutofacServiceProvider Configure(this IServiceCollection services, string connectionString, IConfigurationRoot configuration)
        {
            //注入
            DependencyInjectionService.GetInstance(services)
            .AddMvc()
            .AddCookie()
            .AddSwagger()
            .AddCors()
            .AddDddLayering()
            .AddCap()
            .AddRedis();

            //AutoFac依赖注入
            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(configuration);

            builder.RegisterModule(module);
            Container = builder.Build();
            return(new AutofacServiceProvider(Container));
        }
Esempio n. 2
0
        public void ImmutablilityTest()
        {
            // builder methods return copies; the original module is immutable
            ConfigurationModule builder1 = MyConfigurationModule.Conf
                                           .Set(MyConfigurationModule.TheFoo, GenericType <FooImpl> .Class);

            Assert.IsFalse(builder1 == MyConfigurationModule.Conf);

            IConfiguration config1 = builder1.Build();

            // reusable
            IConfiguration config2 = MyConfigurationModule.Conf
                                     .Set(MyConfigurationModule.TheFoo, GenericType <FooAltImpl> .Class)
                                     .Build();

            // instantiation of each just to be sure everything is fine in this situation
            IInjector i1 = TangFactory.GetTang().NewInjector(config1);
            IInjector i2 = TangFactory.GetTang().NewInjector(config2);

            Assert.AreEqual(42, ((IFoo)i1.GetInstance(typeof(IFoo))).getFooness());
            Assert.AreEqual(7, ((IFoo)i2.GetInstance(typeof(IFoo))).getFooness());
        }
        private static void RegisterConfigurationModule()
        {
            Console.WriteLine();
            var builder = new ContainerBuilder();

            var config = new ConfigurationBuilder();

            config.AddJsonFile("Autofac.json");
            var configModule = new ConfigurationModule(config.Build());

            builder.RegisterModule(configModule);
            Console.WriteLine("# Registered Configuration Module from Autofac.json file.");

            var container = builder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var dateTimeProvider = scope.Resolve <IDateTimeProvider>();
                Console.WriteLine("Resolved Module Registered {0}#CurrentDateTime = {1}",
                                  dateTimeProvider.GetType().Name, dateTimeProvider.CurrentDateTime);
            }
        }
Esempio n. 4
0
        private static void Init()
        {
            try
            {
                string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "autofac.json");

                var config = new ConfigurationBuilder();
                config.AddJsonFile(path);

                // Register the ConfigurationModule with Autofac.
                var module  = new ConfigurationModule(config.Build());
                var builder = new ContainerBuilder();
                builder.RegisterModule(module);
                builder.Register <CryptoProvider>(o => ProviderFactory.CreateCryptoProvider());

                m_Container = builder.Build();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 服务代理设置
        /// </summary>
        /// <param name="services"></param>
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            //每次GetService都会获得一个新的实例
            services.AddTransient <IDemoService, DemoService>();

            //在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http request会在一个 scope内)
            services.AddScoped <IDemoService, DemoService>();

            //整个应用程序生命周期以内只创建一个实例
            services.AddSingleton <IDemoService, DemoService>();



            // Add the configuration to the ConfigurationBuilder.
            var config = new ConfigurationBuilder();

            // config.AddJsonFile comes from Microsoft.Extensions.Configuration.Json
            // config.AddXmlFile comes from Microsoft.Extensions.Configuration.Xml
            config.AddJsonFile("autofac.json");
            config.AddXmlFile("autofac.xml");
            // Register the ConfigurationModule with Autofac.
            var module  = new ConfigurationModule(config.Build());
            var builder = new ContainerBuilder();

            builder.RegisterModule(module);



            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddControllersAsServices();
            //ContainerBuilder builder = new ContainerBuilder();
            //新模块组件注册
            builder.RegisterModule <DefaultModule>();
            //将services中的服务填充到Autofac中.
            builder.Populate(services);
            //创建容器.
            Container = builder.Build();
            //使用容器创建 AutofacServiceProvider
            return(new AutofacServiceProvider(Container));
        }
        public static ContainerBuilder Build(string sectionName)
        {
            var config = new ConfigurationBuilder();
            //取得目前專案的路徑,原本預設是在bin的Debug資料夾
            string basePath = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));

            //設定成root路徑
            config.SetBasePath(basePath);

            //參數是與root路徑相對的位置
            config.AddJsonFile($"{sectionName}.json");

            //透過Config產生Module
            var module = new ConfigurationModule(config.Build());

            var builder = new ContainerBuilder();

            //將Module註冊到Container內
            builder.RegisterModule(module);

            return(builder);
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            var config = new ConfigurationBuilder();

            config.AddJsonFile("config.json");

            var module = new ConfigurationModule(config.Build());

            var builder = new ContainerBuilder();

            builder.RegisterModule(module);
            //builder.RegisterType<ImplementationN>().As<InterfaceN>();

            var container = builder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var impl = scope.Resolve <InterfaceN>();
                Console.WriteLine(impl.GetString());
                Console.ReadKey();
            }
        }
Esempio n. 8
0
        public static IServiceProvider BuildServiceProvider(this IServiceCollection services,
                                                            IConfiguration configuration)
        {
            var libraryManager     = services.GetService <ILibraryManager>();
            var dependencyResolver = services.GetService <IDependencyResolver>();

            var dap = new DefaultAssemblyProvider(libraryManager);

            IEnumerable <Assembly> assemblies = dap.CandidateAssemblies;

            dependencyResolver.RegisterModules(assemblies);

            ConfigurationModule configurationModule = new ConfigurationModule(configuration);

            dependencyResolver.RegisterModule(configurationModule);

            dependencyResolver.Build();

            IServiceProvider serviceProvider = dependencyResolver.Resolve <IServiceProvider>();

            return(serviceProvider);
        }
Esempio n. 9
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ContainerBuilder builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly).InstancePerRequest().PropertiesAutowired();
            builder.RegisterApiControllers(typeof(MvcApplication).Assembly).InstancePerRequest();

            IConfigurationBuilder config = new ConfigurationBuilder();

            config.AddJsonFile("autofac.json");

            ConfigurationModule module = new ConfigurationModule(config.Build());

            builder.RegisterModule(module);

            builder.RegisterFilterProvider();
            builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);

            //builder.RegisterType<LogMvcActionAttribute>().PropertiesAutowired();
            //builder.RegisterType<LogWebApiActionAttribute>().PropertiesAutowired();

            IContainer container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            IExtensibilityManager extensibilityManager = container.Resolve <IExtensibilityManager>();

            extensibilityManager.GetModuleEvents(); // stores them in state

            //GlobalFilters.Filters.Add(container.Resolve<LogMvcActionAttribute>());
            //GlobalConfiguration.Configuration.Filters.Add(container.Resolve<LogWebApiActionAttribute>());
        }
Esempio n. 10
0
        public void ConfigureContainerBuilder(bool writeLogsToTestOutput = false,
                                              bool writeLogsToFile       = false,
                                              bool logDotNettyTraffic    = false)
        {
            SocketPortHelper.AlterConfigurationToGetUniquePort(ConfigurationRoot);

            var configurationModule = new ConfigurationModule(ConfigurationRoot);

            ContainerBuilder.RegisterModule(configurationModule);
            ContainerBuilder.RegisterModule(new CoreLibProvider());
            ContainerBuilder.RegisterInstance(ConfigurationRoot).As <IConfigurationRoot>();

            var repoFactory =
                RepositoryFactory.BuildSharpRepositoryConfiguation(
                    ConfigurationRoot.GetSection("CatalystNodeConfiguration:PersistenceConfiguration"));

            ContainerBuilder.RegisterSharpRepository(repoFactory);

            var passwordReader = new TestPasswordReader();

            ContainerBuilder.RegisterInstance(passwordReader).As <IPasswordReader>();

            var certificateStore = new TestCertificateStore();

            ContainerBuilder.RegisterInstance(certificateStore).As <ICertificateStore>();
            ContainerBuilder.RegisterInstance(_fileSystem).As <IFileSystem>();

            var keyRegistry = TestKeyRegistry.MockKeyRegistry();

            ContainerBuilder.RegisterInstance(keyRegistry).As <IKeyRegistry>();

            ContainerBuilder.RegisterModule(new DfsModule());
            ContainerBuilder.RegisterModule(new BulletProofsModule());
            ContainerBuilder.RegisterModule(new KeystoreModule());
            ContainerBuilder.RegisterModule(new KeySignerModule());
            ContainerBuilder.RegisterModule(new HashingModule());

            ConfigureLogging(writeLogsToTestOutput, writeLogsToFile, logDotNettyTraffic);
        }
Esempio n. 11
0
        /// <summary>
        /// ×¢²á·þÎñºÍ½Ó¿Ú
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder)
        {
            var config = new ConfigurationBuilder();

            config.AddJsonFile("autofac.json");

            // Register the ConfigurationModule with Autofac.
            var module = new ConfigurationModule(config.Build());

            builder.RegisterModule(module);

            // Ìí¼ÓÀ¹½ØÆ÷
            var assemblies = typeFinder.GetAssemblies().Where(s => s.FullName.StartsWith("NGP.Foundation.")).ToArray();

            builder.RegisterType <ExceptionInterceptionHandler>().InstancePerLifetimeScope();
            builder.RegisterType <TransactionInterceptorHandler>().InstancePerLifetimeScope();
            builder.RegisterAssemblyTypes(assemblies)
            .Where(s => s.Name.EndsWith("Service"))
            .AsImplementedInterfaces()
            .EnableInterfaceInterceptors()
            .InterceptedBy(typeof(ExceptionInterceptionHandler), typeof(TransactionInterceptorHandler));
        }
Esempio n. 12
0
        static async Task Main(string[] args)
        {
            var builder = new ContainerBuilder();
            var config  = new ConfigurationBuilder().Build();

            var module = new ConfigurationModule(config);

            builder.RegisterModule(module);

            var services = new ServiceCollection();

            services.AddScoped <IPipeFactory <TransformTextPipeModel>, TransformTextPipeFactory>();
            services.AddScoped(typeof(IPipeService <>), typeof(PipeService <>));
            services.AddScoped <IModifyTextService, ModifyTextService>();

            builder.Populate(services);
            var container = builder.Build();

            try
            {
                using (var scope = container.BeginLifetimeScope())
                {
                    var modifyTextService = scope.Resolve <IModifyTextService>();

                    var textToBeTransformed = "    piPeliNe pattern  ";
                    var transformedText     = await modifyTextService.TransformTextAsync(textToBeTransformed);

                    Console.WriteLine(textToBeTransformed);
                    Console.WriteLine(transformedText);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error occured: {ex.Message}. SendEmailNotificationErrorStep was executed.");
            }

            Console.ReadLine();
        }
Esempio n. 13
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddHttpContextAccessor();
            services.AddAutoMapper();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            // Create the container builder.
            var builder = new ContainerBuilder();

            builder.Populate(services);

            var config = new ConfigurationBuilder();

            config.AddJsonFile("autofac.json");
            var module = new ConfigurationModule(config.Build());

            builder.RegisterInstance(Configuration);

            builder.RegisterModule(module);

            Container = builder.Build();

            //services.AddCors(options =>
            //{
            //    options.AddPolicy("AllowAll",
            //        x =>
            //        {
            //            x
            //            .AllowAnyOrigin()
            //            .AllowAnyMethod()
            //            .AllowAnyHeader();
            //        });
            //});

            // Create the IServiceProvider based on the container.
            return(new AutofacServiceProvider(Container));
        }
Esempio n. 14
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            //services.AddDbContext<AccountContext>(options =>
            //         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), db => db.UseRowNumberForPaging()));
            //services.AddDbContext<AccountContext>(options =>
            //         options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
            services.AddDbContextPool <AccountContext>(                                             // replace "YourDbContext" with the class name of your DbContext
                options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), // replace with your Connection String
                                            mysqlOptions =>
            {
                mysqlOptions.ServerVersion(new Version(5, 7, 17), ServerType.MySql);         // replace with your Server Version and Type
            }
                                            ));
            services.AddScoped <DbContext>(provider => provider.GetService <AccountContext>());

            services.AddCors();
            // Add framework services.
            services.AddMvc(options => options.Filters.Add(typeof(CustomExceptionFilterAttribute)))
            .AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss")
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(Configuration);

            builder.RegisterModule(module);
            this.Container = builder.Build();

            return(new AutofacServiceProvider(this.Container));
        }
        public ViewModelLocator()
        {
            try
            {
                var config = new ConfigurationBuilder();
                config.AddJsonFile("autofac.json");
                var module  = new ConfigurationModule(config.Build());
                var builder = new ContainerBuilder();
                builder.RegisterModule(module);
                Container = builder.Build();

                //var builder = new ContainerBuilder();
                //builder.RegisterType<AppViewModel>();
                //builder.RegisterType<FirstViewModel>();
                //builder.RegisterType<SecondViewModel>();
                //builder.RegisterType<ThirdViewModel>();
                //builder.RegisterType<MessageService>().As<IMessageService>();
                ////builder.RegisterInstance<NavigationService>(new NavigationService()).As<INavigationService>();
                //builder.RegisterType<NavigationService>().As<INavigationService>().SingleInstance();
                //Container = builder.Build();

                navigationService = Container.Resolve <INavigationService>();
                appViewModel      = Container.Resolve <AppViewModel>();
                firstViewModel    = Container.Resolve <FirstViewModel>();
                secondViewModel   = Container.Resolve <SecondViewModel>();
                thirdViewModel    = Container.Resolve <ThirdViewModel>();

                navigationService.Register <FirstViewModel>(firstViewModel);
                navigationService.Register <SecondViewModel>(secondViewModel);
                navigationService.Register <ThirdViewModel>(thirdViewModel);

                navigationService.Navigate <FirstViewModel>();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 16
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);



            var builder = new ContainerBuilder();

            #region 注册 ,通过config文件进行注册
            var config = new ConfigurationBuilder();
            config.AddJsonFile("autofac.json");
            // Register the ConfigurationModule with Autofac.
            var module = new ConfigurationModule(config.Build());
            builder.RegisterModule(module);
            #endregion

            #region 通过.net Core DI进行注册
            var serviceCollection = new ServiceCollection();
            serviceCollection.AddLogging();
            builder.Populate(serviceCollection);
            #endregion


            var container = builder.Build();


            var serviceProvider = new AutofacServiceProvider(container);


            {
                //@@测试 Scanfer
                using (var scope = container.BeginLifetimeScope())
                {
                    var component = scope.Resolve <ILog>();
                    component.LogInfo("a");
                }
            }
        }
Esempio n. 17
0
        public static void Register(this ContainerBuilder builder, IConfiguration configuration, bool loadproducts = true, bool loadconsumers = true, params string[] intern)
        {
            var modules = new List <(bool, string)>
            {
                (true, "autofac.json")
            };

            if (loadproducts)
            {
                modules.Add((true, "autofac.products.json"));
            }

            if (loadconsumers)
            {
                modules.Add((true, "autofac.consumers.json"));
            }

            if (intern != null)
            {
                modules.AddRange(intern.Select(r => (false, r)));
            }

            foreach (var p in modules)
            {
                var config = new ConfigurationBuilder();
                if (p.Item1)
                {
                    config.SetBasePath(configuration["pathToConf"]);
                }
                config.AddJsonFile(p.Item2);

                var root   = config.Build();
                var module = new ConfigurationModule(root);
                builder.RegisterModule(module);
            }

            return;
        }
        static void Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile("config.json");
            var configuration = configBuilder.Build();

            var containerBuilder = new ContainerBuilder();
            var configModule     = new ConfigurationModule(configuration);

            containerBuilder.RegisterModule(configModule);

            using (var container = containerBuilder.Build())
            {
                float a = 3, b = 4;
                foreach (IOperation op in container.Resolve <IList <IOperation> >())
                {
                    Console.WriteLine($"Result: {op.Calculate(a, b)}");
                }
            }

            Console.ReadKey();
        }
Esempio n. 19
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            ICoreServiceBuilder coreServiceBuilder = new CoreServiceBuilder(services, _configuration);

            coreServiceBuilder.AddDbcontext();
            coreServiceBuilder.AddAppService();
            coreServiceBuilder.AddFluentValidationService();
            coreServiceBuilder.AddMvcExtensions();
            coreServiceBuilder.AddSwaggerGenerator();
            coreServiceBuilder.AddCors();
            coreServiceBuilder.AddAutoMapper();
            coreServiceBuilder.AddMiniProfiler();
            coreServiceBuilder.AddJwtAuth();

            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(_configuration);

            builder.RegisterModule(module);
            Autofac.IContainer Container = builder.Build();
            return(new AutofacServiceProvider(Container));
        }
        public void MapsPropertyWithEnvironmentVariablesWhenPropertyValueMatchesEnvironmentVariable()
        {
            var builder        = new ContainerBuilder();
            var config         = new EnvironmentValuesWithoutAttributes();
            var resolver       = new InstanceResolver(config);
            var expectedString = Guid.NewGuid().ToString();

            Environment.SetEnvironmentVariable(config.StringData, expectedString);

            var sut = new ConfigurationModule(resolver);

            builder.RegisterModule(sut);

            var container = builder.Build();

            // There are several registrations which aren't expected because of Uri properties being resolved
            container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1);
            container.Should().HaveRegistered <EnvironmentValuesWithoutAttributes>();

            var actual = container.Resolve <EnvironmentValuesWithoutAttributes>();

            actual.StringData.Should().Be(expectedString);
        }
Esempio n. 21
0
        protected ContainerBuilder ConfigureContainer(string configFileBaseName)
        {
            var fileName = string.Format(
                "{0}\\ContainerConfig\\{1}",
                AppDomain.CurrentDomain.BaseDirectory,
                configFileBaseName);

            if (!File.Exists(fileName))
            {
                return(_containerBuilder);
            }

            //var csr = new ConfigurationSettingsReader(SectionHandler.DefaultSectionName, fileName);
            //cb.RegisterModule(csr);

            var config = new ConfigurationBuilder();

            config.AddXmlFile(fileName);
            var module = new ConfigurationModule(config.Build());

            _containerBuilder.RegisterModule(module);
            return(_containerBuilder);
        }
        public static AutofacServiceProvider Configure(this IServiceCollection services, string connectionString, IConfigurationRoot configuration)
        {
            services.AddDbContext <MyContext>(options => options.UseSqlServer(connectionString));
            //注入
            DependencyInjectionService.GetInstance(services)
            .AddMvc()
            .AddCookie()
            .AddSwagger()
            .AddCors()
            .AddDddLayering()
            .AddEventBus()
            .AddCap();
            //.AddIdentityServer();
            //Autofac依赖注入 Class的后面名字必须一致才能注入
            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(configuration);

            builder.RegisterModule(module);
            Container = builder.Build();
            return(new AutofacServiceProvider(Container));
        }
Esempio n. 23
0
        private static void Main(string[] args)
        {
            var configurationBuilder = new ConfigurationBuilder()
                                       .SetBasePath(Directory.GetCurrentDirectory())
                                       //.AddJsonFile("config.json");
                                       .AddXmlFile("config.xml");
            var config = configurationBuilder.Build();

            var builder      = new ContainerBuilder();
            var configModule = new ConfigurationModule(config);

            builder.RegisterModule(configModule);

            var container = builder.Build();

            foreach (var op in container.Resolve <IList <IOperation> >())
            {
                float a = 100, b = 54;
                Console.WriteLine($"{op.GetType().Name} of {a} and {b} = {op.Calculate(a, b)}");
            }

            Console.ReadLine();
        }
Esempio n. 24
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            //services.AddDbContext<AccountContext>(options =>
            //         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), db => db.UseRowNumberForPaging()));
            services.AddDbContext <AccountContext>(options =>
                                                   options.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
            services.AddScoped <DbContext>(provider => provider.GetService <AccountContext>());

            services.AddCors();
            // Add framework services.
            services.AddMvc(options => options.Filters.Add(typeof(CustomExceptionFilterAttribute)))
            .AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss");

            var builder = new ContainerBuilder();

            builder.Populate(services);
            var module = new ConfigurationModule(Configuration);

            builder.RegisterModule(module);
            this.Container = builder.Build();

            return(new AutofacServiceProvider(this.Container));
        }
Esempio n. 25
0
        public static void Run([TimerTrigger("0 0 10 * * Mon")] TimerInfo myTimer,
                               ILogger log, ExecutionContext context)
        {
            // Sets the settings model defined as static properties in the class.
            var configModule = new ConfigurationModule(context);

            var containerBuilder = new ContainerBuilder();

            containerBuilder.RegisterModule(configModule);
            containerBuilder.RegisterModule <RetrospectiveModule>();
            containerBuilder.RegisterInstance(log).As <ILogger>();
            var container = containerBuilder.Build();

            var actorSystem = ActorSystem.Create("retrospective-automation-actor-system");

            actorSystem.UseAutofac(container);
            var retrospectiveManager =
                actorSystem.ActorOf(actorSystem.DI().Props <RetrospectiveManager>(), "retrospective-manager");
            var result = retrospectiveManager.Ask(new StartAnalysisRequest(),
                                                  TimeSpan.FromMinutes(1));

            result.Wait();
        }
Esempio n. 26
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ContainerBuilder builder = new ContainerBuilder();

            //builder.RegisterType<HomeController>();

            builder.RegisterControllers(typeof(MvcApplication).Assembly).InstancePerRequest();
            builder.RegisterApiControllers(typeof(MvcApplication).Assembly).InstancePerRequest();

            //builder.RegisterType<Tester>().As<ITester>().SingleInstance();
            //builder.RegisterType<ExtensibilityManager>().As<IExtensibilityManager>().SingleInstance();
            //builder.RegisterType<BlogPostRepository>().As<IBlogPostRepository>().WithParameter(new TypedParameter(typeof(string), "easyBlog"));
            //builder.RegisterModule<RepositoryRegistrationModule>();

            IConfigurationBuilder config = new ConfigurationBuilder();

            config.AddJsonFile("autofac.json");

            ConfigurationModule module = new ConfigurationModule(config.Build());

            builder.RegisterModule(module);

            IContainer container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            IExtensibilityManager extensibilityManager = container.Resolve <IExtensibilityManager>();

            extensibilityManager.GetModuleEvents(); // stores them in state
        }
Esempio n. 27
0
        public ViewModelLocator()
        {
            try
            {
                var config = new ConfigurationBuilder();
                config.AddJsonFile(Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\autofac.json");
                var module  = new ConfigurationModule(config.Build());
                var builder = new ContainerBuilder();
                builder.RegisterModule(module);
                Container = builder.Build();

                navigationService = Container.Resolve <INavigationService>();
                appViewModel      = Container.Resolve <AppViewModel>();
                //
                SignUpViewModel        = Container.Resolve <SignUpPageViewModel>();
                LogInViewModel         = Container.Resolve <LogInPageViewModel>();
                MainViewModel          = Container.Resolve <MainPageViewModel>();
                NewTripViewModel       = Container.Resolve <NewTripPageViewModel>();
                ShowPdfViewModel       = Container.Resolve <ShowPdfPageViewModel>();
                ShowMapViewModel       = Container.Resolve <ShowMapPageViewModel>();
                ShowGoogleMapViewModel = Container.Resolve <ShowGoogleMapPageViewModel>();

                navigationService.Register <LogInPageView>(LogInViewModel);
                navigationService.Register <SignUpPageView>(SignUpViewModel);
                navigationService.Register <MainPageView>(MainViewModel);
                navigationService.Register <NewTripPageView>(NewTripViewModel);
                navigationService.Register <ShowPdfPageView>(ShowPdfViewModel);
                navigationService.Register <ShowMapPageView>(ShowMapViewModel);
                navigationService.Register <ShowGoogleMapPageView>(ShowGoogleMapViewModel);

                navigationService.Navigate <LogInPageView>();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 28
0
        private static IContainer AutofacConfigure(ContainerBuilder builder, Action <ContainerBuilder> register)
        {
            var config = new ConfigurationBuilder();

            config.AddJsonFile(PathConfigurationAutofac);

            var module = new ConfigurationModule(config.Build());

            builder.RegisterModule(module);
            builder.RegisterModule <Moderator.AutofacModule>();
            builder.RegisterType <Core>().FindConstructorsWith(new InternalConstructorFinder()).SingleInstance();
            builder.RegisterModule(new MessageBusModule(typeof(Core).Assembly));
            builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());
            builder.Register(x =>
                             JsonConvert.DeserializeObject <Configuration>(File.ReadAllText(Path.Combine(assemblyFolder, "config.json"))))
            .As <Configuration>().SingleInstance();

            builder.Register(x => new NancyHost(x.Resolve <INancyBootstrapper>(), new Uri($"http://{GetLocalIPAddress()}:{x.Resolve<Configuration>().WebApiPort}")));
            builder.RegisterType <Moderator.Moderator>().As <IModerator>();
            builder.Register(x => new SocketServer($"ws://{GetLocalIPAddress()}:{x.Resolve<Configuration>().WebSocketPort}", x.Resolve <ILifetimeScope>())).As <ISocketServer>();
            builder.RegisterType <Aggregator>().AsSelf();
            register(builder);
            return(builder.Build());
        }
Esempio n. 29
0
        private static void Main()
        {
            var execFolder = Path.GetDirectoryName(typeof(Program).Assembly.Location);

            AssemblyLoadContext.Default.Resolving += (context, assembly) =>
                                                     context.LoadFromAssemblyPath(Path.Combine(execFolder !, $"{assembly.Name}.dll"));

            var config = new ConfigurationBuilder()
                         .AddJsonFile("autofac_config.json").Build();

            var configModule = new ConfigurationModule(config);

            var builder = new ContainerBuilder();

            builder.RegisterModule(configModule);

            var container = builder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var component = scope.Resolve <ComponentA>();
                Console.WriteLine("Resolved component type: {0}", component.Name);

                Console.WriteLine("All available components:");
                var allComponents = scope.Resolve <IEnumerable <IComponent> >();
                foreach (var resolvedComponent in allComponents)
                {
                    Console.WriteLine("- {0}", resolvedComponent.Name);
                }
            }



            // exit:
            Console.ReadKey();
        }
Esempio n. 30
0
            public void Start()
            {
                _builder = new ContainerBuilder();

                _builder.RegisterModule(new FileWatcherModule());

                // Add the configuration to the ConfigurationBuilder.
                var configurationBuilder = new ConfigurationBuilder();

                configurationBuilder.AddXmlFile("FileWatcher.xml");

                // Register the ConfigurationModule with Autofac.
                var module = new ConfigurationModule(configurationBuilder.Build());

                _builder.RegisterModule(module);


                container = _builder.Build();

                var king = container.Resolve <IFileWather>();

                king.StartProcessing();
                _logger.Info("Запуск успешно завершен.");
            }