public ViewModelLocator()
        {
            var container = new ContainerBuilder();

            container.RegisterInstance(App.MainFrame).As <Frame>();

            container.RegisterType <ScenarioStorer>()
            .AsSelf()
            .AsImplementedInterfaces()
            .SingleInstance();

            container.RegisterType <PageNavigationService>();
            container.RegisterType <MainPageViewModel>();
            container.RegisterType <ScenePageViewModel>();
            container.RegisterType <MainViewModel>();
            container.RegisterType <DescisionPageViewModel>();
            container.RegisterType <MainPage>();
            container.RegisterType <ScenePage>();

            container.RegisterInstance <IPageNavigationService>(App.pageNavigation);
            container.RegisterInstance(new FormatConverter()).As <IFormatConvert>();
            var con = container.Build();
            var cs1 = new AutofacServiceLocator(con);

            ServiceLocator.SetLocatorProvider(() => cs1);
        }
예제 #2
0
        public static void ConfigureDependencyInjection(HttpConfiguration config)
        {
            var builder = new ContainerBuilder();

            // Register your Web API controllers.
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

            builder.RegisterModule <AutoFacModule>();

            // OPTIONAL: Register the Autofac filter provider.
            builder.RegisterWebApiFilterProvider(config);

            // OPTIONAL: Register the Autofac model binder provider.
            builder.RegisterWebApiModelBinderProvider();

            builder.RegisterMediatR(MediatRConfiguration.GetAssemblies());

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

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            var autofacServiceLocator = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => autofacServiceLocator);
        }
예제 #3
0
    public void Start(Action <IWindowViewModel>?mainWindowOptions = null)
    {
        var configuration = configurationBuilder.Build();

        containerBuilder.RegisterInstance(configuration).As <IConfiguration>();

        container = containerBuilder.Build();

        var csl = new AutofacServiceLocator(container);

        ServiceLocator.SetLocatorProvider(() => csl);

        startupFactory?.Invoke(container.Resolve <IShell>(), container.Resolve <IConfiguration>(), container)?.Start();

        appBuilder.Start(StartApplication, args);

        void StartApplication(Application app, string[] args)
        {
            var mainWindowViewModel = container.Resolve <MainWindowViewModel>();

            mainWindowOptions?.Invoke(mainWindowViewModel);

            var window = new MainWindowView()
            {
                DataContext = mainWindowViewModel,
            };

            app.Run(window);
        }
    }
예제 #4
0
        private static void InitializeAutofacContainer()
        {
            var    builder           = new ContainerBuilder();
            var    executingAssembly = Assembly.GetExecutingAssembly();
            string executionPath     = Path.GetDirectoryName(executingAssembly.Location);

            List <Assembly> allAssemblies = new List <Assembly>
            {
                executingAssembly
            };

            foreach (string dll in Directory.GetFiles(executionPath, "*.dll"))
            {
                allAssemblies.Add(Assembly.LoadFile(dll));
            }

            // Perform registrations and build the container.
            builder.RegisterAssemblyModules(allAssemblies.ToArray());
            var container = builder.Build();

            // Set the service locator to an AutofacServiceLocator.
            var autofacServiceLocator = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => autofacServiceLocator);
        }
예제 #5
0
        static ViewModelLocator()
        {
            var builder = new ContainerBuilder();

            var platformService = DependencyService.Get <IPlatformService>();

            var navigationService = GetNavigationService();

            var cardsDatabaseFilePath = platformService.GetCardsDatabaseFilePath();

            var decksDatabaseFilePath = platformService.GetDecksDatabaseFilePath();

            builder.Register(c => new LocalDataService(cardsDatabaseFilePath, decksDatabaseFilePath)).As <IDataService>().InstancePerLifetimeScope();
            builder.Register(c => new CardImageService()).As <ICardImageService>();
            builder.Register(c => platformService.CreateDialogServiceInstance()).As <GalaSoft.MvvmLight.Views.IDialogService>();
            builder.Register(c => navigationService).As <INavigationService>();
            builder.RegisterType <AddDeckViewModel>().AsSelf();
            builder.RegisterType <CardDetailViewModel>().AsSelf();
            builder.RegisterType <DecksViewModel>().AsSelf();
            builder.RegisterType <MainViewModel>().AsSelf();
            builder.RegisterType <SearchCardViewModel>().AsSelf();

            Container = builder.Build();

            var serviceLocator = new AutofacServiceLocator(Container);

            ServiceLocator.SetLocatorProvider(() => serviceLocator);
        }
예제 #6
0
        public static void Initialize(IAppBuilder app)
        {
            var builder = new ContainerBuilder();

            // REGISTER DEPENDENCIES
            builder.RegisterModule(new AutofacRegistration());
            builder.RegisterModule(new AutofacBlRegistration());
            builder.RegisterModule(new AutofacDalRegistration());
            builder.RegisterModule(new AutofacInfrastructureRegistration());

            builder.RegisterType <ApplicationUserManager>().AsSelf().InstancePerRequest();
            builder.RegisterType <UserIdentityService <AppMember> >().As <IUserStore <AppMember, int> >().InstancePerRequest();
            builder.RegisterType <ApplicationSignInManager>().AsSelf().InstancePerRequest();
            builder.Register <IAuthenticationManager>(c => HttpContext.Current.GetOwinContext().Authentication).InstancePerRequest();
            builder.Register <IDataProtectionProvider>(c => app.GetDataProtectionProvider()).InstancePerRequest();

            // REGISTER CONTROLLERS SO DEPENDENCIES ARE CONSTRUCTOR INJECTED
            builder.RegisterControllers(typeof(MvcApplication).Assembly);

            // BUILD THE CONTAINER
            var container = builder.Build();

            // REPLACE THE MVC DEPENDENCY RESOLVER WITH AUTOFAC
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            var csl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);

            // REGISTER WITH OWIN
            app.UseAutofacMiddleware(container);
        }
예제 #7
0
        public void Configuration(IAppBuilder app)
        {
            var builder = new ContainerBuilder();

            builder.RegisterAssemblyTypes(Assembly.Load("BuroBeauty.Repositories.Implementation"))
            .Where(t => t.Name.EndsWith("Repository") || t.Name.EndsWith("Provider"))
            .AsImplementedInterfaces()
            .PropertiesAutowired();

            builder.RegisterAssemblyTypes(Assembly.Load("BuroBeauty.BLL.Implementation"))
            .Where(t => t.Name.EndsWith("Manager"))
            .AsImplementedInterfaces()
            .PropertiesAutowired();

            // MVC Setup
            builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired();
            builder.RegisterFilterProvider();

            var container = builder.Build();

            var csl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);

            var config = GlobalConfiguration.Configuration;

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            ConfigureAuth(app);
        }
예제 #8
0
        public static void Initialize()
        {
            if (_container == null)
            {
                //var serviceProvider = new ServiceCollection()
                //	.BuildServiceProvider();

                var builder = new ContainerBuilder();
                builder.RegisterModule(new DataModule());
                builder.RegisterModule(new ServicesModule());
                builder.RegisterModule(new ProviderModule());
                builder.RegisterModule(new EmailProviderModule());
                builder.RegisterModule(new WorkerFrameworkModule());
                builder.RegisterModule(new BusModule());
                builder.RegisterModule(new RabbitBusModule());
                builder.RegisterModule(new AddressVerificationModule());
                builder.RegisterModule(new NumbersProviderModule());
                builder.RegisterModule(new CacheProviderModule());
                builder.RegisterModule(new MarketingModule());
                builder.RegisterModule(new PdfProviderModule());
                builder.RegisterModule(new AudioProviderModule());
                builder.RegisterModule(new FirebaseProviderModule());

                _container = builder.Build();

                Locator = new AutofacServiceLocator(_container);
                ServiceLocator.SetLocatorProvider(() => Locator);
            }
        }
예제 #9
0
        protected void Application_Start()
        {
            // Register MVC-related dependencies.
            var builder = new ContainerBuilder();

            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterModelBinders(typeof(MvcApplication).Assembly);
            builder.RegisterModelBinderProvider();

            // Register the EntLib classes.
            builder.RegisterEnterpriseLibrary();

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

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            // Set the EntLib service locator to use Autofac.
            var autofacLocator = new AutofacServiceLocator(container);

            EnterpriseLibraryContainer.Current = autofacLocator;

            // Finish initialization of MVC-related items.
            AreaRegistration.RegisterAllAreas();
            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
예제 #10
0
        public static void Initialize()
        {
            var builder = new ContainerBuilder();

            // Register View Models
            builder.RegisterType <AlertListViewModel>().AsSelf();
            builder.RegisterType <ApiViewModel>().AsSelf();
            builder.RegisterType <ExchangeViewModel>().AsSelf();
            builder.RegisterType <PortfolioViewModel>().AsSelf();
            builder.RegisterType <WatchListViewModel>().AsSelf();

            // Regiseter Builders
            builder.RegisterType <AlertBuilder>().As <IAlertBuilder>();
            builder.RegisterType <CoinBuilder>().As <ICoinBuilder>();
            builder.RegisterType <CoinBuyBuilder>().As <ICoinBuyBuilder>();
            builder.RegisterType <CurrencyBuilder>().As <ICurrencyBuilder>();
            builder.RegisterType <ExchangeApiBuilder>().As <IExchangeApiBuilder>();
            builder.RegisterType <ExchangeCoinBuilder>().As <IExchangeCoinBuilder>();
            builder.RegisterType <ExchangeHubBuilder>().As <IExchangeHubBuilder>();
            builder.RegisterType <ExchangeOrderBuilder>().As <IExchangeOrderBuilder>();
            builder.RegisterType <WatchBuilder>().As <IWatchBuilder>();

            IContainer container = builder.Build();

            var asl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => asl);
        }
예제 #11
0
        public static Autofac.IContainer RegisterDeps()
        {
            var builder = new ContainerBuilder();

            RegisterMaps(builder);

            builder.RegisterType <LoginViewModel>().AsSelf();
            builder.RegisterType <CommessaViewModel>().AsSelf();
            builder.RegisterType <SettingsViewModel>().AsSelf();
            builder.RegisterType <BarcodeViewModel>().AsSelf();
            builder.RegisterType <BaseViewModel>().AsSelf();
            builder.RegisterType <PhotoViewModel>().AsSelf();
            builder.RegisterType <PhotoUploadViewModel>().AsSelf();
            builder.RegisterType <PhotoCarouselViewModel>().AsSelf();
            builder.RegisterType <InconvenienteViewModel>().AsSelf();
            builder.RegisterType <InconvenienteExtraViewModel>().AsSelf();
            builder.RegisterType <SettingsApp>().AsSelf();
            builder.RegisterType <ApiServices>().AsSelf();
            builder.RegisterType <Logger>().AsSelf();
            builder.RegisterType <HistoryNotesPageViewModel>().AsSelf();
            builder.RegisterType <GestioneNoteViewModel>().AsSelf();

            var container = builder.Build();
            var csl       = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);
            return(container);
        }
예제 #12
0
        /// <summary>
        /// 获取IServiceLocator(重复调用最多只会执行一次Build操作)
        /// </summary>
        public IServiceLocator BuildServiceLocator()
        {
            if (_serviceLocator == null)
            {
                lock (_lock)
                {
                    if (_serviceLocator == null)
                    {
                        if (_autofacRegList != null)
                        {
                            foreach (var autofacReg in _autofacRegList)
                            {
                                autofacReg.Register(ContainerBuilder);
                            }
                        }

                        //生成容器
                        Container = ContainerBuilder.Build();

                        var serviceLocator = new AutofacServiceLocator(Container);

                        //设置通用IOC适配器
                        ServiceLocator.SetLocatorProvider(() => serviceLocator);

                        _serviceLocator = serviceLocator;
                    }
                }
            }

            return(_serviceLocator);
        }
예제 #13
0
        /// <summary>
        /// Initializes a new instance of the ViewModelLocator class.
        /// </summary>
        public ViewModelLocator()
        {
            var builder = new ContainerBuilder();

            builder
            .RegisterAssemblyTypes(Assembly.GetAssembly(typeof(MainViewModel)))
            .PublicOnly()
            .AsImplementedInterfaces()
            .AsSelf();

            var container = builder.Build();
            var csl       = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);

            ////if (ViewModelBase.IsInDesignModeStatic)
            ////{
            ////    // Create design time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DesignDataService>();
            ////}
            ////else
            ////{
            ////    // Create run time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DataService>();
            ////}
        }
예제 #14
0
파일: IoC.cs 프로젝트: szp11/LotteryService
        public void SetServiceLocator(IContainer iocContainer)
        {
            // Set the service locator to an AutofacServiceLocator.
            var csl = new AutofacServiceLocator(iocContainer);

            ServiceLocator.SetLocatorProvider(() => csl);
        }
예제 #15
0
        public static void Register(HttpConfiguration config)
        {
            // Json settings
            config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver  = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.SerializerSettings.Formatting        = Formatting.Indented;
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings()
            {
                ContractResolver  = new CamelCasePropertyNamesContractResolver(),
                Formatting        = Newtonsoft.Json.Formatting.Indented,
                NullValueHandling = NullValueHandling.Ignore,
            };

            //Associate bot with DB on Azure
            SetupBotDataStore();

            // Web API configuration and services
            var container = RegisterDependencies(new ContainerBuilder());

            var csl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
        }
        protected override void Load(ContainerBuilder builder)
        {
            //Dominio
            builder.RegisterType <UsuarioService>().As <IUsuarioService>().InstancePerLifetimeScope();
            builder.RegisterType <SalaService>().As <ISalaService>().InstancePerLifetimeScope();
            builder.RegisterType <SalaAgendamentoService>().As <ISalaAgendamentoService>().InstancePerLifetimeScope();

            //Infra Data
            builder.RegisterType <UsuarioRepository>().As <IUsuarioRepository>().InstancePerLifetimeScope();
            builder.RegisterType <SalaRepository>().As <ISalaRepository>().InstancePerLifetimeScope();
            builder.RegisterType <SalaAgendamentoRepository>().As <ISalaAgendamentoRepository>().InstancePerLifetimeScope();

            //Aplicação
            builder.RegisterType <UsuarioAppService>().As <IUsuarioAppService>().InstancePerLifetimeScope();
            builder.RegisterType <SalaAppService>().As <ISalaAppService>().InstancePerLifetimeScope();
            builder.RegisterType <SalaAgendamentoAppService>().As <ISalaAgendamentoAppService>().InstancePerLifetimeScope();


            var locatorBuilder = new ContainerBuilder();

            locatorBuilder.RegisterType <SalaAgendamentoService>().As <ISalaAgendamentoService>().InstancePerLifetimeScope();
            locatorBuilder.RegisterType <SalaAgendamentoRepository>().As <ISalaAgendamentoRepository>().InstancePerLifetimeScope();

            locatorBuilder.RegisterType <SalaService>().As <ISalaService>().InstancePerLifetimeScope();
            locatorBuilder.RegisterType <SalaRepository>().As <ISalaRepository>().InstancePerLifetimeScope();

            locatorBuilder.RegisterType <UsuarioService>().As <IUsuarioService>().InstancePerLifetimeScope();
            locatorBuilder.RegisterType <UsuarioRepository>().As <IUsuarioRepository>().InstancePerLifetimeScope();

            var container = locatorBuilder.Build();
            var locator   = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => locator);
        }
        private void Build()
        {
            var builder = new ContainerBuilder();

            // Register dependencies.
            builder.RegisterType <AuthService>().As <IAuthService>().InstancePerLifetimeScope();
            builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope();

            builder.RegisterType <FaunaDbAuthRepository>().As <IAuthRepository>().InstancePerLifetimeScope();
            builder.RegisterType <FaunaDbUserRepository>().As <IUserRepository>().InstancePerLifetimeScope();

            builder.RegisterType <FaunaClient>().SingleInstance().WithParameter("secret", Config.FaunaSecret)
            .WithParameter("domain", Config.FaunaHost).WithParameter("scheme", Config.FaunaScheme).WithParameter("port", Config.FaunaPort);

            var container = builder.Build();

            // Create service locator.
            var csl = new AutofacServiceLocator(container);

            // Set the service locator created.
            Microsoft.Practices.ServiceLocation.ServiceLocator.SetLocatorProvider(() => csl);

            // Use the service locator.
            this.Instance = Microsoft.Practices.ServiceLocation.ServiceLocator.Current;
        }
예제 #18
0
        private static void SetServiceLocator(IContainer container)
        {
            // Set the service locator to an AutofacServiceLocator.
            var serviceLocator = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => serviceLocator);
        }
예제 #19
0
        /// <summary>
        /// Registers dependencies with an IoC container.
        /// </summary>
        /// <remarks>
        /// Since some of our libraries are shared between the Forms and Native versions
        /// of this app, we're using an IoC/DI framework to provide access across implementations.
        /// </remarks>
        void RegisterDependencies()
        {
            var builder = new ContainerBuilder();

            builder.RegisterInstance(new EnvironmentService()).As <IEnvironmentService>();

            builder.RegisterInstance(new HttpClientHandlerFactory()).As <IHttpClientHandlerFactory>();

            builder.RegisterInstance(new DatastoreFolderPathProvider()).As <IDatastoreFolderPathProvider>();

            builder.RegisterInstance(new DataSyncConflictMessagePresenter()).As <IDataSyncConflictMessagePresenter>();

            // Set the data source dependent on whether or not the data parition phrase is "UseLocalDataSource".
            // The local data source is mainly for use in TextCloud test runs, but the app can be used in local-only data mode if desired.
            if (Settings.IsUsingLocalDataSource)
            {
                builder.RegisterInstance(new FilesystemOnlyAcquaintanceDataSource()).As <IDataSource <Acquaintance> >();
            }
            else
            {
                builder.RegisterInstance(new AzureAcquaintanceSource()).As <IDataSource <Acquaintance> >();
            }

            _IoCContainer = builder.Build();

            var csl = new AutofacServiceLocator(_IoCContainer);

            ServiceLocator.SetLocatorProvider(() => csl);
        }
예제 #20
0
        protected static void ConfigureServices()
        {
            var builder = new ContainerBuilder();

            builder
            .RegisterType <TuringFormat>()
            .AsImplementedInterfaces()
            .SingleInstance();
            builder
            .RegisterType <OpenFileDialogService>()
            .AsImplementedInterfaces()
            .SingleInstance();
            builder
            .RegisterType <SaveFileDialogService>()
            .AsImplementedInterfaces()
            .SingleInstance();
            builder
            .RegisterType <ErrorDialogService>()
            .AsImplementedInterfaces()
            .SingleInstance();
            builder
            .RegisterType <MainViewModel>()
            .AsSelf()
            .InstancePerLifetimeScope();

            var container = builder.Build();
            var csl       = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);
        }
예제 #21
0
        public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
        .UseServiceProviderFactory(new AutofacServiceProviderFactory())
        .ConfigureHostConfiguration(builder => { })
        .ConfigureAppConfiguration((context, builder) =>
        {
            builder.AddJsonFile("appsettings.json", optional: true);
            builder.AddEnvironmentVariables();

            if (args != null)
            {
                builder.AddCommandLine(args);
            }
        })
        .ConfigureServices((context, collection) =>
        {
            collection.AddOptions();
            collection.Configure <AppConfig>(context.Configuration.GetSection("AppConfig"));
            ConfigurationBuilder config = new ConfigurationBuilder();
            config.AddJsonFile("autofac.config.json");

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

            ContainerBuilder builder = new ContainerBuilder();
            builder.Populate(collection);
            builder.RegisterModule(module);

            builder.RegisterType <App>().As <IHostedService>().SingleInstance();
            IContainer appContainer = builder.Build();

            AutofacServiceLocator locator = new AutofacServiceLocator(appContainer);
            ServiceLocator.SetLocatorProvider(() => locator);
        })
        .ConfigureLogging((context, builder) => builder.AddConsole().AddSerilog());
        public static IContainer Configure()
        {
            var builder = new ContainerBuilder();

            //Models
            builder.RegisterType <LedModel>().As <ILedConfiguration>();
            builder.RegisterType <ConfigModel>().As <IConfigurationModel>();
            builder.RegisterType <DataService>().As <IDataServiceProvider>();
            builder.RegisterType <MessagingCenter>().As <IMessagingCenter>();
            builder.RegisterType <GraphService>().As <IGraphServiceProvider>();
            builder.RegisterType <IoCServerService>().As <IServerService>();


            //Taking in consideration Microsoft docs HttpClient should be instatiented once per app lifecycle
            builder.Register(c => new HttpClient()).As <HttpClient>().SingleInstance();

            //ViewModels
            builder.RegisterType <SettingsViewModel>().AsSelf();
            builder.RegisterType <LedViewModel>().AsSelf();
            builder.RegisterType <MainViewModel>().AsSelf();
            builder.RegisterType <GraphViewModel>().AsSelf();
            builder.RegisterType <JoystickViewModel>().AsSelf();
            builder.RegisterType <DataListViewModel>().AsSelf();

            IContainer container = builder.Build();


            //Setting services locator to abstract ViewModels creation using Autofac
            //Due to Xamarin architecture the only way i've found to do this
            AutofacServiceLocator asl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => asl);

            return(container);
        }
예제 #23
0
        static ViewModelLocator()
        {
            FileService s = new FileService();


            var builder = new ContainerBuilder();

            builder.RegisterType <MainViewModel>().SingleInstance();
            builder.RegisterType <HomeViewModel>().SingleInstance();
            builder.RegisterType <RecentViewModel>();
            builder.RegisterType <GameDetailViewModel>();
            builder.RegisterType <LoadViewModel>();

            var navigation = SetupNavigation();

            DisplayRootRegistry rootRegistry = new DisplayRootRegistry();

            rootRegistry.RegisterWindowType <FileSelectViewModel, View.FileSelectWindow>();
            builder.RegisterInstance <DisplayRootRegistry>(rootRegistry);

            builder.RegisterInstance <IFrameNavigationService>(navigation);
            builder.RegisterType <WebRestRepository>().As <IRepository>().SingleInstance();

            var container = builder.Build();

            // Set the service locator to an AutofacServiceLocator.
            var csl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);


            SetupNavigation();
        }
예제 #24
0
        public static void Init()
        {
            //Create the builder
            var builder = new ContainerBuilder();

            //Register the services
            builder.RegisterType <NavService>().As <INavService>().SingleInstance();
            builder.RegisterType <HttpService>().As <IHttpService>().SingleInstance();
            builder.RegisterType <DialogService>().As <IDialogService>().SingleInstance();

            //Register the view models
            builder.RegisterType <AssetDetailViewModel>();
            builder.RegisterType <AssetsViewModel>();

            //Build the container
            container = builder.Build();
            AutofacServiceLocator autofacServiceLocator = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => autofacServiceLocator);

            // Register view mappings
            var navService = Resolve <INavService>() as NavService;

            navService.RegisterViewMapping(typeof(AssetDetailViewModel), typeof(AssetDetailPage));
            navService.RegisterViewMapping(typeof(AssetsViewModel), typeof(AssetsPage));
        }
예제 #25
0
        public static void Initialize(IServiceCollection services)
        {
            if (_container == null)
            {
                var builder = new ContainerBuilder();

                builder.RegisterModule(new DataModule());
                builder.RegisterModule(new ServicesModule());
                builder.RegisterModule(new ProviderModule());
                builder.RegisterModule(new EmailProviderModule());
                builder.RegisterModule(new BusModule());
                builder.RegisterModule(new AddressVerificationModule());
                builder.RegisterModule(new NumbersProviderModule());
                builder.RegisterModule(new CacheProviderModule());
                builder.RegisterModule(new MarketingModule());
                builder.RegisterModule(new PdfProviderModule());
                builder.RegisterModule(new AudioProviderModule());
                builder.RegisterModule(new FirebaseProviderModule());

                if (services != null)
                {
                    builder.Populate(services);
                }

                _container = builder.Build();

                // Prime these Singletons
                var eventAggregator = _container.Resolve <IEventAggregator>();
                var outbound        = _container.Resolve <IOutboundEventProvider>();
                var eventService    = _container.Resolve <ICoreEventService>();

                _locator = new AutofacServiceLocator(_container);
                ServiceLocator.SetLocatorProvider(() => _locator);
            }
        }
 public void when_initializing_a_new_instance_with_a_null_container_it_should_throw_an_argument_null_exception()
 {
     AutofacServiceLocator sut = null;
     Action initializing = () => sut = new AutofacServiceLocator(null);
     initializing.ShouldThrow<ArgumentNullException>()
         .WithMessage(AutofacServiceLocator.ContainerNullErrorMessage, ComparisonMode.Substring)
         .WithMessage("container", ComparisonMode.Substring);
 }
        private void ConfigureCommonServiceLocator()
        {
            var container = CreateContainer();

            var csl = new AutofacServiceLocator(container);

            ServiceLocator.SetLocatorProvider(() => csl);
        }
예제 #28
0
        } // App ctor


        /// <summary>Инициализация зависимостей.</summary>
        public void InitializeDependencies()
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule(new MainModule());

            var locator = new AutofacServiceLocator(builder.Build());
            ServiceLocator.SetLocatorProvider(() => locator);
        } // InitializeDependencies
예제 #29
0
        public App(IThemeChanger themeChanger)
        {
            InitializeComponent();

            Theme = new ColorTheme(themeChanger);
            Theme.ApplyColorTheme();


            if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android)
            {
                var ci = DependencyService.Get <ILocalize>().GetCurrentCultureInfo();
                AppResources.Culture = ci;
                DependencyService.Get <ILocalize>().SetLocale(ci);
            }

            var containerBuilder = new ContainerBuilder();

            // Register data provider. Mock data provider is used in DebugMock build configuration
#if DEBUGMOCK
            containerBuilder.RegisterType <MockDataProvider>().As(typeof(IDataProvider)).SingleInstance();
#else
            var firebaseConfigurationOptions = Options.Create <FirebaseConfiguration>(new FirebaseConfiguration()
            {
                Enabled = true
            });

            containerBuilder.RegisterInstance(firebaseConfigurationOptions).As(typeof(IOptions <FirebaseConfiguration>)).SingleInstance();
            containerBuilder.RegisterType <FirebaseDataProvider>().As(typeof(IDataProvider)).SingleInstance();
#endif
            containerBuilder.RegisterType <DatabaseManagementService>().As(typeof(IDatabaseManagementService)).SingleInstance();

            // Register services
            containerBuilder.RegisterType <LocationDataService>().As(typeof(IDataService <Models.Location>)).SingleInstance();
            containerBuilder.RegisterType <HistoryDataService>().As(typeof(IDataService <MeasurementHistory>)).SingleInstance();
            containerBuilder.RegisterType <NavigationService>().As(typeof(INavigationService)).SingleInstance();

            // Register view models
            containerBuilder.RegisterType <LocationListViewModel>().As(typeof(LocationListViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <LocationGraphViewModel>().As(typeof(LocationGraphViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <LocationDetailsViewModel>().As(typeof(LocationDetailsViewModel)).SingleInstance().AutoActivate();
            containerBuilder.RegisterType <OptionsGeneralViewModel>().As(typeof(OptionsGeneralViewModel)).SingleInstance();
            containerBuilder.RegisterType <OptionsSummaryViewModel>().As(typeof(OptionsSummaryViewModel)).SingleInstance();
            containerBuilder.RegisterType <OptionsWidgetViewModel>().As(typeof(OptionsWidgetViewModel)).SingleInstance();

            containerBuilder.RegisterType <AboutViewModel>().As(typeof(AboutViewModel)).SingleInstance();

            var container = containerBuilder.Build();
            //container.Resolve<LocationListViewModel>();

            var dbManagementService = container.Resolve <IDatabaseManagementService>();
            dbManagementService.SetDatabaseConfiguration();

            AutofacServiceLocator asl = new AutofacServiceLocator(container);
            ServiceLocator.SetLocatorProvider(() => asl);

            MainPage = new AppShell();
        }
예제 #30
0
        public void when_initializing_a_new_instance_with_a_null_container_it_should_throw_an_argument_null_exception()
        {
            AutofacServiceLocator sut = null;
            Action initializing       = () => sut = new AutofacServiceLocator(null);

            initializing.ShouldThrow <ArgumentNullException>()
            .WithMessage(AutofacServiceLocator.ContainerNullErrorMessage, ComparisonMode.Substring)
            .WithMessage("container", ComparisonMode.Substring);
        }
예제 #31
0
        public MainViewModel()
        {
            var localIoc = new AutofacServiceLocator(new Bootstrapper().BootStrap());
            var addShapeCommandFactory    = localIoc.GetInstance <Func <ObservableCollection <ShapeViewModel>, AddShapeCommand> >();
            var removeShapeCommandFactory = localIoc.GetInstance <Func <ObservableCollection <ShapeViewModel>, RemoveShapeCommand> >();

            AddShapeCommand    = addShapeCommandFactory(Shapes);
            RemoveShapeCommand = removeShapeCommandFactory(Shapes);
        }
        public AutofacTests()
        {
            var builder = new ContainerBuilder();
            builder.RegisterSource(new ContravariantRegistrationSource());
            builder.RegisterAssemblyTypes(typeof(A).Assembly).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(typeof(A).Assembly).AsClosedTypesOf(typeof(B<>));
            builder.RegisterAssemblyTypes(typeof(A).Assembly).AsClosedTypesOf(typeof(D<>));
            builder.RegisterAssemblyTypes(typeof(A).Assembly).AsClosedTypesOf(typeof(E<,>));
            builder.RegisterAssemblyTypes(typeof(A).Assembly).AsClosedTypesOf(typeof(F<,>));

            ServiceLocator = new AutofacServiceLocator(builder.Build());
        }
        public void can_create_new_default_instance()
        {
            var sut = new AutofacServiceLocator();

            sut.Should().NotBeNull();
        }
        public void can_initialize_a_new_instance_with_a_existing_container()
        {
            var sut = new AutofacServiceLocator(new ContainerBuilder().Build());

            sut.Should().NotBeNull();
        }