Exemple #1
0
        private IMediator BuildMediator()
        {
            var services = new ServiceCollection();

            DIHelper.ConfigureServices(services);

            services.AddDbContext <IDbContext, AppDbContext>(options =>
                                                             options.UseInMemoryDatabase(Guid.NewGuid().ToString()));

            var serviceProviderFactory = new AutofacServiceProviderFactory();
            var containerBuilder       = serviceProviderFactory.CreateBuilder(services);
            var serviceProvider        = serviceProviderFactory.CreateServiceProvider(containerBuilder);

            var mediator = serviceProvider.GetRequiredService <IMediator>();

            var dbContext = serviceProvider.GetRequiredService <IDbContext>();

            dbContext.Orders.AddRange(
                new Order {
                Id = 1, UserEmail = "*****@*****.**"
            },
                new Order {
                Id = 2, UserEmail = "other_email"
            });
            dbContext.SaveChangesAsync().Wait();

            return(mediator);
        }
        public static IHostBuilder UseClaptrap(this IHostBuilder hostBuilder,
                                               Action <IClaptrapBootstrapperBuilder> builderAction,
                                               Action <ContainerBuilder>?containerBuilderAction = null)
        {
            return(hostBuilder
                   .ConfigureServices((context, collection) =>
            {
                var configSection =
                    context.Configuration.GetSection(ClaptrapServerOptions.ConfigurationSectionName);
                collection.Configure <ClaptrapServerOptions>(configSection);
            })
                   .UseServiceProviderFactory(context =>
            {
                var serviceProviderFactory = new AutofacServiceProviderFactory(
                    builder =>
                {
                    var collection = new ServiceCollection().AddLogging(logging =>
                    {
                        logging.SetMinimumLevel(LogLevel.Debug);
                    });
                    var buildServiceProvider = collection.BuildServiceProvider();
                    var loggerFactory = buildServiceProvider.GetService <ILoggerFactory>();
                    var bootstrapperBuilder = new AutofacClaptrapBootstrapperBuilder(loggerFactory, builder);
                    bootstrapperBuilder
                    .ScanClaptrapModule()
                    .AddConfiguration(context);
                    builderAction.Invoke(bootstrapperBuilder);
                    var claptrapBootstrapper = bootstrapperBuilder.Build();
                    claptrapBootstrapper.Boot();
                    containerBuilderAction?.Invoke(builder);
                });

                return serviceProviderFactory;
            }));
        }
Exemple #3
0
        protected override IServiceProvider CreateServiceProvider(IServiceCollection serviceCollection)
        {
            var factory = new AutofacServiceProviderFactory();
            var builder = factory.CreateBuilder(serviceCollection);

            return(factory.CreateServiceProvider(builder));
        }
        public IHost Build()
        {
            this.ConfigureServices(y => y.AddSingleton(this.StartupHandler));
            this.StartupHandler.ConfigureServices(this.serviceDescriptors);

            this.InvokeConfigureServiceActions();

            var serviceProviderFactory = new AutofacServiceProviderFactory(builder => builder.Populate(this.serviceDescriptors));

            this.hostBuilder
            .UseWindowsService()
            .ConfigureLogging(cfg =>
            {
                cfg.AddFilter("Microsoft.EntityFrameworkCore", LogLevel.Warning);
                cfg.AddFilter("Hangfire", LogLevel.Error);
            })
            .UseServiceProviderFactory(serviceProviderFactory)
            .ConfigureAppConfiguration(cfg =>
            {
                cfg.Sources.Clear();
                cfg.AddConfiguration(Globals.DefaultConfiguration);
            });

            var host = this.hostBuilder.Build();

            this.StartupHandler.Configure(host.Services.GetService <IServiceProvider>());

            return(host);
        }
Exemple #5
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .UseServiceProviderFactory(context =>
        {
            var serviceProviderFactory = new AutofacServiceProviderFactory(
                builder =>
            {
                var clientBuilder = new ClientBuilder();
                clientBuilder
                .UseLocalhostClustering()
#if !DEBUG
                .UseConsulClustering(options =>
                {
                    options.Address =
                        new Uri(context.Configuration["Claptrap:Orleans:Clustering:ConsulUrl"]);
                })
#endif
                .ConfigureApplicationParts(manager =>
                                           manager.AddFromDependencyContext().WithReferences())
                ;
                var clusterClient = clientBuilder.Build();
                builder.RegisterInstance(clusterClient)
                .As <IGrainFactory>()
                .As <IClusterClient>()
                .SingleInstance()
                .ExternallyOwned();
            });

            return(serviceProviderFactory);
        })
        .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); });
Exemple #6
0
        public static IServiceProvider CreateBuilder(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(System.IO.Directory.GetCurrentDirectory())
                         .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                         .Build();

            var services = new ServiceCollection()
                           .AddLogging(loggingBuilder =>
            {
                loggingBuilder.ClearProviders();
                loggingBuilder.SetMinimumLevel(LogLevel.Trace);
                loggingBuilder.AddNLog(config);
            });

            var factory = new AutofacServiceProviderFactory();

            var startup = new Startup(config);

            startup.ConfigureServices(services);
            var builder = factory.CreateBuilder(services);

            startup.ConfigureContainer(builder);
            var provider = factory.CreateServiceProvider(builder);

            return(provider);
        }
        public static ContainerBuilder BuildContainer(IServiceCollection services)
        {
            var factory = new AutofacServiceProviderFactory();
            var cb      = factory.CreateBuilder(services);

            return(cb);
        }
Exemple #8
0
        static AppFixture()
        {
            _configuration = new ConfigurationBuilder()
                             .SetBasePath(Directory.GetCurrentDirectory())
                             .AddJsonFile("appsettings.json")
                             .AddEnvironmentVariables()
                             .Build();

            var startup  = new Startup(_configuration, new HostEnvironment());
            var services = new ServiceCollection();

            startup.ConfigureServices(services);
            var builder = new AutofacServiceProviderFactory().CreateBuilder(services);

            startup.ConfigureContainer(builder);
            builder.RegisterType <NullDispatcher>().As <IDomainEventDispatcher>(); // replace with null dispatcher

            var container = builder.Build();

            _scopeFactory = container.Resolve <IServiceScopeFactory>();
            _checkpoint   = new Checkpoint
            {
                DbAdapter      = DbAdapter.Postgres,
                TablesToIgnore = new[]
                {
                    "unit_of_measure_lib",
                    "migration_history"
                }
            };

            ConnectionString = _configuration.GetConnectionString("Postgres");
            Debug.Assert(ConnectionString.Contains("_test"));
        }
Exemple #9
0
        public IServiceProvider GetServiceProvider()
        {
            var env = new TestWebHostEnviroment();

            env.EnvironmentName = "development";
            var services      = new ServiceCollection();
            var configBuilder = new ConfigurationBuilder();

            JsonConfigurationExtensions.AddJsonFile(configBuilder, "appsettings.json", true, true);
            Configuration = configBuilder.Build();
            services.AddLogging(builder =>
            {
                builder.ClearProviders();
                if (env.EnvironmentName.Contains("develop", StringComparison.OrdinalIgnoreCase))
                {
                    //分环境不同来配置log
                }
                builder.AddDebug();
                builder.AddConsole();
                builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
            });
            var startUp = new Startup(Configuration, env);

            startUp.ConfigureServices(services);
            var autofacServiceProviderFactory = new AutofacServiceProviderFactory(startUp.ConfigureContainer);
            var containerBuilder = autofacServiceProviderFactory.CreateBuilder(services);

            return(autofacServiceProviderFactory.CreateServiceProvider(containerBuilder));
        }
Exemple #10
0
        public static WebAssemblyHostBuilder CreateHostBuilder(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault();

            builder.RootComponents.Add <App>("app");

            var factory = new AutofacServiceProviderFactory(b => b.RegisterModule <ClientModule>());

            builder.ConfigureContainer(factory);

            var services = builder.Services;

            services.AddOptions();
            services.AddBlazoredLocalStorage();

            services.AddAuthorizationCore(config =>
            {
                config.AddPolicy(Policies.HasWeather, Policies.WeatherPolicy());
                config.AddPolicy(Policies.HasQuotes, Policies.QuotesPolicy());
            });

            JobManager.UseUtcTime();

            return(builder);
        }
Exemple #11
0
        private static ContainerBuilder BuildContainer(IServiceCollection services)
        {
            var factory = new AutofacServiceProviderFactory();
            var result  = factory.CreateBuilder(services);

            return(result);
        }
Exemple #12
0
        public BitServiceProviderFactory(Action <IDependencyManager, IServiceCollection, ContainerBuilder> configureAction)
        {
            _inner = new AutofacServiceProviderFactory(containerBuilder =>
            {
                if (_services == null)
                {
                    throw new InvalidOperationException("services is null");
                }

                if (containerBuilder == null)
                {
                    throw new InvalidOperationException("containerBuilder is null");
                }

                containerBuilder.Properties["services"] = _services;

                AutofacDependencyManager dependencyManager = new AutofacDependencyManager();
                dependencyManager.UseContainerBuilder(containerBuilder);
                ((IServiceCollectionAccessor)dependencyManager).ServiceCollection = _services;

                containerBuilder.Properties["dependencyManager"] = dependencyManager;

                containerBuilder.Register(c => _container).SingleInstance();

                configureAction?.Invoke(dependencyManager, _services, containerBuilder);
            });
        }
Exemple #13
0
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(bundle);

            Rg.Plugins.Popup.Popup.Init(this, bundle);

            Forms.Init(this, bundle);

            // Initializing FFImageLoading
            CachedImageRenderer.Init(false);

            // Initializing User Dialogs
            UserDialogs.Init(this);

            // Initializing Xamarin Essentials
            Xamarin.Essentials.Platform.Init(this, bundle);

#if GORILLA
            LoadApplication(UXDivers.Gorilla.Droid.Player.CreateApplication(
                                this,
                                new UXDivers.Gorilla.Config("Good Gorilla")
                                .RegisterAssemblyFromType <InverseBooleanConverter>()
                                .RegisterAssemblyFromType <CachedImageRenderer>()));
#else
            //Loading dependent libindy
            JavaSystem.LoadLibrary("gnustl_shared");
            JavaSystem.LoadLibrary("indy");

            // Initializing QR Code Scanning support
            ZXing.Net.Mobile.Forms.Android.Platform.Init();

            //Marshmellow and above require permission requests to be made at runtime
            if ((int)Build.VERSION.SdkInt >= 23)
            {
                CheckAndRequestRequiredPermissions();
            }


            var services = new ServiceCollection(); //Create a service collection
            services.AddHttpClient();               //invoke add http client extension
            services.AddOptions();

            //...add other services as needed

            //use autofac integration `Autofac.Extensions.DependencyInjection`
            var providerFactory = new AutofacServiceProviderFactory();

            //OR Container
            ContainerBuilder builder = providerFactory.CreateBuilder(services);
            builder.RegisterModule(new PlatformModule());

            var container = builder.Build();

            LoadApplication(new App(container));
#endif
        }
        public void CreateBuilderExecutesConfigurationActionWhenProvided()
        {
            var factory = new AutofacServiceProviderFactory(config => config.Register(c => "Foo"));

            var builder = factory.CreateBuilder(new ServiceCollection());

            Assert.Equal("Foo", builder.Build().Resolve <string>());
        }
        /// <inheritdoc />
        public override void OnInitialize(TestRunExecutionContext context)
        {
            var builder = new ContainerBuilder();

            DiConfig.Setup(builder, testingMode: true);
            container = builder.Build();
            ServiceProviderFactory = new AutofacServiceProviderFactory(container);
        }
        public void CreateServiceProviderReturnsAutofacServiceProvider()
        {
            var factory = new AutofacServiceProviderFactory();

            var serviceProvider = factory.CreateServiceProvider(new ContainerBuilder());

            Assert.IsType <AutofacServiceProvider>(serviceProvider);
        }
        public void CreateBuilderReturnsNewInstance()
        {
            var factory = new AutofacServiceProviderFactory();

            var builder = factory.CreateBuilder(new ServiceCollection());

            Assert.NotNull(builder);
        }
        public void CreateServiceProviderThrowsWhenProvidedNullContainerBuilder()
        {
            var factory = new AutofacServiceProviderFactory();

            var exception = Assert.Throws <ArgumentNullException>(() => factory.CreateServiceProvider(null));

            Assert.Equal("containerBuilder", exception.ParamName);
        }
        public void CreateBuilderAllowsForNullConfigurationAction()
        {
            var factory = new AutofacServiceProviderFactory();

            var builder = factory.CreateBuilder(new ServiceCollection());

            Assert.NotNull(builder);
        }
Exemple #20
0
    public static AutofacServiceProviderFactory AddAutofacServiceProviderFactory(this IServiceCollection services, ContainerBuilder containerBuilder)
    {
        var factory = new AutofacServiceProviderFactory(containerBuilder);

        services.AddObjectAccessor(containerBuilder);
        services.AddSingleton((IServiceProviderFactory <ContainerBuilder>)factory);

        return(factory);
    }
Exemple #21
0
 public FakeAutofacServiceProviderFactory(
     ContainerBuildOptions containerBuildOptions           = ContainerBuildOptions.None,
     Action <ContainerBuilder>?configurationActionOnBefore = null,
     Action <ContainerBuilder>?configurationActionOnAfter  = null)
 {
     _configurationActionOnAfter   = configurationActionOnAfter;
     AutofacServiceProviderFactory =
         new AutofacServiceProviderFactory(containerBuildOptions, configurationActionOnBefore);
 }
Exemple #22
0
        private void InitApi()
        {
            ContainerBuilder builder = new AutofacServiceProviderFactory().CreateBuilder(new ServiceCollection().AddHttpClient());

            builder.RegisterType <BlizzardApiReader>().As <IBlizzardApiReader>();
            builder.RegisterType <ApiWebClient>().As <IWebClient>();
            builder.Register(c => Options.Create(Configuration.GetSection("BlizzardApi").Get <BlizzardApiConfiguration>())).As <IOptions <BlizzardApiConfiguration> >();

            Api = builder.Build().Resolve <IBlizzardApiReader>();
        }
Exemple #23
0
        public void CreateServiceProviderUsesDefaultContainerBuildOptionsWhenNotProvided()
        {
            var factory  = new AutofacServiceProviderFactory();
            var services = new ServiceCollection().AddSingleton("Foo");
            var builder  = factory.CreateBuilder(services);

            var serviceProvider = factory.CreateServiceProvider(builder);

            Assert.NotNull(serviceProvider.GetService <Lazy <string> >());
        }
        public void CreateServiceProviderBuildsServiceProviderUsingContainerBuilder()
        {
            var factory  = new AutofacServiceProviderFactory();
            var services = new ServiceCollection().AddTransient <object>();
            var builder  = factory.CreateBuilder(services);

            var serviceProvider = factory.CreateServiceProvider(builder);

            Assert.NotNull(serviceProvider.GetService(typeof(object)));
        }
        protected void Application_Start()
        {
            var services = new ServiceCollection();

            services.AddDistributedMemoryCache(); //Token cache için gerekli
            services.AddePlatformClients(clientOptions =>
            {
                clientOptions.AuthServiceUrl    = "https://coretest.isim360.com";
                clientOptions.InvoiceServiceUrl = "https://efaturaservicetest.isim360.com";
                clientOptions.Auth = new ClientOptions.AuthOption
                {
                    ClientId = "serviceApi",
                    Username = "******",
                    Password = "******"
                };
            });

            var providerFactory = new AutofacServiceProviderFactory();
            //to populate your container
            ContainerBuilder builder = providerFactory.CreateBuilder(services);

            //var builder = new ContainerBuilder();

            // MVC - Register your MVC controllers.
            builder.RegisterControllers(typeof(WebApiApplication).Assembly);

            // MVC - OPTIONAL: Register model binders that require DI.
            builder.RegisterModelBinders(typeof(WebApiApplication).Assembly);
            builder.RegisterModelBinderProvider();

            // MVC - OPTIONAL: Register web abstractions like HttpContextBase.
            builder.RegisterModule <AutofacWebTypesModule>();

            // MVC - OPTIONAL: Enable property injection in view pages.
            builder.RegisterSource(new ViewRegistrationSource());

            // MVC - OPTIONAL: Enable property injection into action filters.
            builder.RegisterFilterProvider();

            // ePlatform Services
            //builder.RegisterModule<ePlatformSerivecesModule>();

            // MVC - Set the dependency resolver to be Autofac.
            var container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            // Standard MVC setup:

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
Exemple #26
0
        private static IServiceProvider CreateServiceProvider(ServiceCollection services)
        {
            var autofacServiceProviderFactory =
                new AutofacServiceProviderFactory(builder => builder.RegisterModule(new AutoRegistrationModule()));

            services.AddSingleton <IServiceProviderFactory <ContainerBuilder> >(autofacServiceProviderFactory);
            var containerBuilder = autofacServiceProviderFactory.CreateBuilder(services);
            var serviceProvider  = autofacServiceProviderFactory.CreateServiceProvider(containerBuilder);

            return(serviceProvider);
        }
 internal AutoFacServiceProviderFactoryDecorator(
     AssemblyPaths assemblyPaths,
     Action <IDependousConfiguration> configurationBuilder = null,
     Action <object> logger = null,
     Action <ContainerBuilder> containerBuilder = null)
 {
     _assemblyPaths        = assemblyPaths;
     _configurationBuilder = configurationBuilder;
     _logger     = logger ?? ((x) => { });
     _decorateer = new AutofacServiceProviderFactory(containerBuilder);
 }
 internal AutoFacServiceProviderFactoryDecorator(
     AssemblySearchPatternFactory assemblySearchPatternFactory,
     Action <IDependousConfiguration> configurationBuilder = null,
     Action <object> logger = null,
     Action <ContainerBuilder> containerBuilder = null)
 {
     _assemblySearchPatternFactory = assemblySearchPatternFactory;
     _configurationBuilder         = configurationBuilder;
     _logger     = logger;
     _decorateer = new AutofacServiceProviderFactory(containerBuilder);
 }
        public void CreateBuilderReturnsInstanceWithServicesPopulated()
        {
            var factory  = new AutofacServiceProviderFactory();
            var services = new ServiceCollection();

            services.AddTransient <object>();

            var builder = factory.CreateBuilder(services);

            Assert.True(builder.Build().IsRegistered <object>());
        }
Exemple #30
0
        public void CreateServiceProviderUsesContainerBuildOptionsWhenProvided()
        {
            var options  = ContainerBuildOptions.ExcludeDefaultModules;
            var factory  = new AutofacServiceProviderFactory(options);
            var services = new ServiceCollection().AddSingleton("Foo");
            var builder  = factory.CreateBuilder(services);

            var serviceProvider = factory.CreateServiceProvider(builder);

            Assert.Null(serviceProvider.GetService <Lazy <string> >());
        }