protected override ContainerFor <T> CreateSut <T>()
        {
            var container = new AutofacContainer();

            container.Register <IDependency1, Dependency1>();
            container.Register <IDependency2, Dependency2>();
            container.Register <ConcreteObjectWithMultipleConstructors>();
            container.Register <ConcreteObjectWithNoConstructor>();
            return(new ContainerFor <T>(container));
        }
        /// <summary>
        /// 注册依赖注入
        /// </summary>
        /// <param name="app">IApplicationBuilder</param>
        /// <returns></returns>
        public static IApplicationBuilder UseAutofacExtensions(this IApplicationBuilder app)
        {
            var autofacRoot = app.ApplicationServices.GetAutofacRoot();

            AutofacContainer.Register(autofacRoot);
            return(app);
        }
        public static void Init()
        {
            //依赖注入注册
            AutofacContainer.Register();
            //Es配置
            const string localEsSettingJson = "{ \"EsHttpAddress\": \"http://192.168.0.221:9200/\", \"UserName\": \"\", \"Password\": \"\", \"EsDefaultIndex\": \"\", \"EsConnectionLimit\": 80 }";
            var          localEsSetting     = JsonConvert.DeserializeObject <ElasticSearchSetting>(localEsSettingJson);

            ElasticSearchConfig.ElasticSearchSetting = localEsSetting;
            //获取对象
            //testUserInfoDataSource = AutofacContainer.Current.Resolve<ITestUserInfoDataSource>();

            var userInfo = new TestUserInfo
            {
                UserName    = "******",
                Password    = "******",
                Age         = 15,
                Description = "mydescription"
            };

            Parallel.For(0, 1, (i) =>
            {
                Thread t     = new Thread(new ParameterizedThreadStart(Save));
                userInfo.Age = i;
                userInfo.Id  = Guid.NewGuid().ToString("N");
                t.Start(userInfo);
                Console.WriteLine($"线程{i}!");
            });

            Console.WriteLine("完成!");
            Console.ReadKey();
        }
예제 #4
0
        /// <summary>
        /// 初始化Ioc容器
        /// </summary>
        /// <param name="services"></param>
        /// <returns></returns>
        private IServiceProvider InitIoc(IServiceCollection services)
        {
            var connectionString = Configuration.GetConnectionString("MsSqlServer");
            //var connectionString = Configuration.GetConnectionString("MySql");
            var dbContextOption = new DbContextOption
            {
                ConnectionString = connectionString,
                DbType           = DbTypeEnum.MSSQLSERVER,
                //DbType = DbTypeEnum.MYSQL,
                ModelAssemblyName = "Ses.AspNetCore.Entities",
            };

            //var codeGenerateOption = new CodeGenerateOption
            //{
            //    ModelsNamespace = "Zxw.Framework.Website.Models",
            //    IRepositoriesNamespace = "Zxw.Framework.Website.IRepositories",
            //    RepositoriesNamespace = "Zxw.Framework.Website.Repositories",
            //    IServicsNamespace = "Zxw.Framework.Website.IServices",
            //    ServicesNamespace = "Zxw.Framework.Website.Services"
            //};
            AutofacContainer.Register(Configuration);            //注册配置
            AutofacContainer.Register(dbContextOption);          //注册数据库配置信息
            //AutofacContainer.Register(codeGenerateOption);//注册代码生成器相关配置信息
            AutofacContainer.Register(typeof(DefaultDbContext)); //注册EF上下文
            AutofacContainer.RegisterGeneric(typeof(IRepository <,>), typeof(BaseRepository <,>));
            AutofacContainer.RegisterGeneric(typeof(IBaseService <,>), typeof(BaseService <,>));
            AutofacContainer.Register("Ses.AspNetCore.Services", "Ses.AspNetCore.IServices");//注册service

            return(AutofacContainer.Build(services));
        }
예제 #5
0
파일: App.xaml.cs 프로젝트: koland/bshkara
        private static void RegisterServices()
        {
            var builder   = new ContainerBuilder();
            var container = new AutofacContainer(builder.Build());

            //Allow native to register
            OnContainerSet?.Invoke(container);

            //register PCL Services
            container.Register <IWebService, WebService>();
            container.Register <IDependencyContainer>(container);

            //Set global resolver
            if (!Resolver.IsSet)
            {
                Resolver.SetResolver(container.GetResolver());
            }
        }
예제 #6
0
        static void Main(string[] args)
        {
            var builder = new HostBuilder()
                          .ConfigureAppConfiguration((hostContext, config) =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddJsonFile("Config.json", optional: true);
            })
                          .ConfigureServices((hostContext, services) =>
            {
                services.AddSingleton <IHostLifetime, OwnLifetime>();
                services.AddHostedService <HttpServerHosted>();
                AutofacContainer.Register("Api.Services", "Api.IService");
                AutofacContainer.SetCodeFirstAsync("Api.Models"); //使用codefirst
                AutofacContainer.Build(services);                 //使用ioc注入
            })
                          .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddEventLog();    //启用系统事件日志,
                logging.AddDebug();
                logging.AddConsole();
                logging.AddEventSourceLogger();
            });

            //builder.Build().Run();
            HostFactory.Run(x =>
            {
                //服务名称
                x.SetServiceName("ApiService");
                //服务展示名称
                x.SetDisplayName("ApiService");
                //服务描述
                x.SetDescription("Api服务");
                //服务启动类型:自动
                x.StartAutomatically();
                //x.RunAsLocalSystem();
                x.Service <IHost>(s =>
                {
                    s.ConstructUsing(() => builder.Build());

                    s.WhenStarted(service =>
                    {
                        service.Start();
                    });

                    s.WhenStopped(service =>
                    {
                        service.StopAsync();
                    });
                });
            });
        }
예제 #7
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            AutofacContainer.Register();

            Mapper.Initialize(cfg =>
            {
                AutoMapperConfig.Configure(cfg);
            });
        }
예제 #8
0
        /// <summary>
        /// Sets Inversion of Control.
        /// </summary>
        private void SetIoC()
        {
            var nativeApplication = new XFormsApp <Application>();

            nativeApplication.Init(this);

            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register(c => WindowsPhoneDevice.CurrentDevice).As <IDevice>();
            containerBuilder.Register(c => nativeApplication).As <IXFormsApp>();
            Core.App.RegisterCoreComponents(containerBuilder);

            var autofacContainer = new AutofacContainer(containerBuilder.Build());

            autofacContainer.Register <IDependencyContainer>(autofacContainer);

            Resolver.SetResolver(autofacContainer.GetResolver());
        }
예제 #9
0
        private void InitializeResolver()
        {
            var builder = new ContainerBuilder();

            var autofacContainer = builder.AutoRegisterMvvmComponents(typeof(App).GetTypeInfo().Assembly)
                                   .Finish();

            // That container will use XLabs for resolver
            var container = new AutofacContainer(autofacContainer);

            //Here we can register PCL services
            container.Register <IDependencyContainer>(container);

            // And now, we will set resolver
            if (!Resolver.IsSet)
            {
                Resolver.SetResolver(container.GetResolver());
            }
        }
예제 #10
0
        /// <summary>
        ///   Sets the IoC.
        /// </summary>
        private void SetIoc()
        {
            var nativeApplication = new XFormsApp <XFormsApplicationDroid>();

            nativeApplication.Init(this);

            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register(c => AndroidDevice.CurrentDevice).As <IDevice>();
            containerBuilder.Register(c => nativeApplication).As <IXFormsApp>();
            containerBuilder.Register(c => new FileService()).As <IFileService>();
            containerBuilder.Register(c => new Id3TagService()).As <IId3TagService>();
            containerBuilder.Register(c => new MediaPlayerService()).As <IMediaPlayerService>();

            App.RegisterCoreComponents(containerBuilder);

            var autofacContainer = new AutofacContainer(containerBuilder.Build());

            autofacContainer.Register <IDependencyContainer>(autofacContainer);

            Resolver.SetResolver(autofacContainer.GetResolver());
        }
예제 #11
0
파일: Program.cs 프로젝트: lulzzz/Akkafka
        private static void Main(string[] args)
        {
            PingHost("mssql", true);
            var logger = new LoggerConfiguration()
                         .WriteTo.Console()
                         .MinimumLevel.Information()
                         .CreateLogger();

            Serilog.Log.Logger = logger;

            var config = new AkkaSystemManagerConfig()
            {
                SystemHoconConfigPath = "configuration.hocon", SystemName = "mySystem"
            };
            AkkaSystemManager mgr = new AkkaSystemManager(config, (ActorSystem system, Akka.Configuration.Config c) => new AutoFacDependencyResolver(AutofacContainer.Register(c), system));

            Console.CancelKeyPress += (sender, eventArgs) => { mgr.Stop(); };
            mgr.RunActor <AkkaConsumerWrapper>("akkaConsumerWrapper");
            mgr.WhenTerminated.Wait();
            Console.WriteLine("Progam is exiting");
        }