Beispiel #1
0
        internal static void Bootstrap()
        {
            _container        = new Container();
            _containerAdapter = new SimpleInjectorServiceLocatorAdapter(_container);

            _container.Register <ILoggingService, LoggingService>(Lifestyle.Singleton);
            _container.Register <IDialogService, DialogService>(Lifestyle.Singleton);
            _container.Register <IImageReaderService, ImageReaderService>(Lifestyle.Singleton);

            _container.Register <IUnitOfWorkFactory, NHibernateUnitOfWorkFactory>(Lifestyle.Singleton);

            BootstrapRepositories();
            BootstrapViewModels();


            _container.Register <IDirtySerializableCacheService, DirtySerializableCacheService>(Lifestyle.Singleton);
            _container.Register <ICoinModelFactory, CoinModelFactory>(Lifestyle.Singleton);
            _container.Register <IImageCacheService, ImageCacheService>(Lifestyle.Singleton);

            if (ViewModelBase.IsInDesignModeStatic)
            {
            }

            ServiceLocator.SetLocatorProvider(() => _containerAdapter);
        }
Beispiel #2
0
        public static void RegisterServices(Container container)
        {
            container.Register <IUnitOfWorkRepository, UnitOfWorkRepository>();

            container.RegisterPerWebRequest <IAulaRepository, AulaRepository>();
            container.RegisterPerWebRequest <IAulaAppService, AulaAppService>();
            container.RegisterPerWebRequest <IAulaService, AulaService>();

            container.RegisterPerWebRequest <IAssinaturaNivelRepository, AssinaturaNivelRepository>();
            container.RegisterPerWebRequest <IAssinaturaNivelAppService, AssinaturaNivelAppService>();
            container.RegisterPerWebRequest <IAssinaturaNivelService, AssinaturaNivelService>();

            container.RegisterPerWebRequest <IUsuarioAcessoRepository, UsuarioAcessoRepository>();
            container.RegisterPerWebRequest <IUsuarioAcessoAppService, UsuarioAcessoAppService>();
            container.RegisterPerWebRequest <IUsuarioAcessoService, UsuarioAcessoService>();

            //*****  Registro de dependências para o Identity ******************************************************************************************
            container.RegisterPerWebRequest <ApplicationDbContext>();
            container.RegisterPerWebRequest <IUserStore <ApplicationUser> >(() => new UserStore <ApplicationUser>(new ApplicationDbContext()));
            container.RegisterPerWebRequest <IRoleStore <IdentityRole, string> >(() => new RoleStore <IdentityRole>());
            container.RegisterPerWebRequest <ApplicationUserManager>();
            container.RegisterPerWebRequest <ApplicationSignInManager>();

            //******************************************************************************************************************************************

            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);
        }
Beispiel #3
0
        public static void RegisterInject()
        {
            // 1. Create a new Simple Injector container
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
            DddBasico.Infra.IdC.Injetar.Carregar(container);

            // 2. Include my resolvers
            container.Register <IResolverConexao, ResolverConexao>(Lifestyle.Scoped);

            // 3. This is an extension method from the integration package.
            container.RegisterMvcControllers(Assembly.GetExecutingAssembly());

            // 4. This is an extension method from the integration package as well.
            container.RegisterMvcIntegratedFilterProvider();

            // 5. Adapter for Service Locator
            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);

            // 6. Optionally verify the container's configuration.
            container.Verify();

            // 7. Store the container for use by the application
            DependencyResolver.SetResolver(
                new SimpleInjectorDependencyResolver(container));
        }
Beispiel #4
0
        public static void Register(HttpConfiguration config)
        {
            // Create the container as usual.
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            // Register your types, for instance using the scoped lifestyle:
            DddBasico.Infra.IdC.Injetar.Carregar(container);
            // Registrando minhas classes api

            // This is an extension method from the integration package.
            container.RegisterWebApiControllers(config);

            // Registrando minhas classes api
            container.Register <IResolverConexao, ResolverConexao>(Lifestyle.Scoped);

            container.Verify();

            // Adapter for Service Locator
            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);

            config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
        }
Beispiel #5
0
        private static void InitializeContainer(Container container)
        {
            container.Register <IServiceContext, ServiceContext>();
            container.Register <IAccountService, AccountService>();
            container.Register <ITeamService, TeamService>();
            container.Register <IVoteService, VoteService>();


            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);
        }
Beispiel #6
0
        private static Container InitContainer()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);
            RegisterServices(container);

            return(container);
        }
Beispiel #7
0
        public ViewModelLocator()
        {
            _container = new Container();

            var locatorAdapter = new SimpleInjectorServiceLocatorAdapter(_container);

            ServiceLocator.SetLocatorProvider(() => locatorAdapter);

            ////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>();
            ////}

            _container.Register <Container>(() => _container, Lifestyle.Singleton);
            _container.Register <ISnackbarMessageQueue>(() => new SnackbarMessageQueue(), Lifestyle.Singleton);
            _container.Register <ViewModelLocator>(() => this, Lifestyle.Singleton);

            // Windows
            _container.Register <MainViewModel>(Lifestyle.Singleton);

            // Controls
            _container.Register <HomeViewModel>();
            _container.Register <ConnectionViewModel>(Lifestyle.Singleton);
            _container.Register <ExecutionViewModel>(Lifestyle.Singleton);
            _container.Register <ConfigurationViewModel>(Lifestyle.Singleton);
            _container.Register <LogViewModel>(Lifestyle.Singleton);

            SettingsService settingsService = new SettingsService();

            _container.Register <DataSampleService>(Lifestyle.Singleton);
            _container.Register <SettingsService>(() => settingsService, Lifestyle.Singleton);

            _container.Register <ModuleEngine>(() => ModuleEngine.CreateInstance(_container, settingsService).Result, Lifestyle.Singleton);

            try
            {
                _container.Verify();
            }
            catch (Exception e)
            {
                Logger.Log(e);
                throw;
            }
        }
        public SimpleInjectorTests()
        {
            var container = new Container();

            container.Register<A, AImpl>();
            container.RegisterManyForOpenGeneric(typeof(B<>), typeof(A).Assembly);
            container.RegisterManyForOpenGeneric(typeof(C<,>), ((t, impls) =>
            {
                foreach (var impl in impls.Where(impl => !impl.IsAbstract))
                {
                    container.Register(impl);
                }
            }), typeof(A).Assembly);
            container.RegisterManyForOpenGeneric(typeof(D<>), typeof(A).Assembly);
            container.RegisterManyForOpenGeneric(typeof(E<,>), typeof(A).Assembly);
            container.RegisterManyForOpenGeneric(typeof(F<,>), typeof(A).Assembly);
            AllowToResolveVariantCollections(container);

            ServiceLocator = new SimpleInjectorServiceLocatorAdapter(container);
        }
Beispiel #9
0
        static void Main()
        {
            var container = new Container();

            container.Register <IUserRepository, InMemoryUserRepository>();
            container.Register <ILogger, ConsoleLogger>();
            container.RegisterManyForOpenGeneric(typeof(IHandle <>), AppDomain.CurrentDomain.GetAssemblies());
            container.RegisterDecorator(typeof(IHandle <>), typeof(LoggingDecorator <>));

            var simpleInjectorServiceLocatorAdapter = new SimpleInjectorServiceLocatorAdapter(container);

            AppDispatcher.Initialize(app =>
            {
                // Decorating the pipline AND using IoC: you will see
                // the action pipleine below wraps any IoC decorators
                app.GlobalPipeline(pipeline => pipeline.Decorate(handler =>
                {
                    Console.WriteLine("before a");
                    handler();
                    Console.WriteLine("after a");
                }).Decorate(handler =>
                {
                    Console.WriteLine("before b");
                    handler();
                    Console.WriteLine("after b");
                }), true);

                app.UseCommonServiceLocator(simpleInjectorServiceLocatorAdapter);
            });

            var request = new CreateUser {
                Name = "Jane Smith"
            };

            AppDispatcher.Handle(request);

            Console.ReadLine();
        }
Beispiel #10
0
        private static IMediator BuildMediator()
        {
            var container  = new Container();
            var assemblies = GetAssemblies().ToArray();

            container.Register <IMediator, Mediator>();
            container.RegisterManyForOpenGeneric(typeof(IRequestHandler <,>), assemblies);
            container.RegisterManyForOpenGeneric(typeof(IAsyncRequestHandler <,>), assemblies);
            container.RegisterManyForOpenGeneric(typeof(INotificationHandler <>), container.RegisterAll, assemblies);
            container.RegisterManyForOpenGeneric(typeof(IAsyncNotificationHandler <>), container.RegisterAll, assemblies);
            container.Register(() => Console.Out);

            var serviceLocator         = new SimpleInjectorServiceLocatorAdapter(container);
            var serviceLocatorProvider = new ServiceLocatorProvider(() => serviceLocator);

            container.Register(() => serviceLocatorProvider);

            container.Verify();

            var mediator = container.GetInstance <IMediator>();

            return(mediator);
        }
Beispiel #11
0
        static void Main()
        {
            var container = new Container();
            container.Register<IUserRepository, InMemoryUserRepository>();
            container.Register<ILogger, ConsoleLogger>();
            container.RegisterManyForOpenGeneric(typeof(IHandle<>), AppDomain.CurrentDomain.GetAssemblies());
            container.RegisterDecorator(typeof(IHandle<>), typeof(LoggingDecorator<>));

            var simpleInjectorServiceLocatorAdapter = new SimpleInjectorServiceLocatorAdapter(container);

            AppDispatcher.Initialize(app =>
            {
                // Decorating the pipline AND using IoC: you will see
                // the action pipleine below wraps any IoC decorators
                app.GlobalPipeline(pipeline => pipeline.Decorate(handler =>
                {
                    Console.WriteLine("before a");
                    handler();
                    Console.WriteLine("after a");
                }).Decorate(handler =>
                {
                    Console.WriteLine("before b");
                    handler();
                    Console.WriteLine("after b");
                }), true);

                app.UseCommonServiceLocator(simpleInjectorServiceLocatorAdapter);

            });

            var request = new CreateUser { Name = "Jane Smith" };

            AppDispatcher.Handle(request);

            Console.ReadLine();
        }
        public static void StartServiceLocator(Container container)
        {
            var adapter = new SimpleInjectorServiceLocatorAdapter(container);

            ServiceLocator.SetLocatorProvider(() => adapter);
        }