コード例 #1
0
        private void InternalInitialize()
        {
            // don't forget there is no logger yet
            if (_logStartingEvents)
            {
                _logger.Log($"{nameof(ApplicationTemplate)}.{nameof(InternalInitialize)}", Category.Info, Priority.None);
            }

            // dependecy injection
            _containerExtension = CreateContainerExtension();
            if (_containerExtension is IContainerRegistry registry)
            {
                registry.RegisterSingleton <ILoggerFacade, DebugLogger>();
                registry.RegisterSingleton <IEventAggregator, EventAggregator>();
                RegisterInternalTypes(registry);
            }

            Debug.WriteLine("[App.RegisterTypes()]");
            RegisterTypes(_containerExtension as IContainerRegistry);

            Debug.WriteLine("Dependency container has just been finalized.");
            _containerExtension.FinalizeExtension();

            // now we can start logging instead of debug/write
            _logger = Container.Resolve <ILoggerFacade>();

            // finalize the application
            ConfigureViewModelLocator();
        }
コード例 #2
0
        private void InternalInitialize()
        {
            // don't forget there is no logger yet
            if (_logStartingEvents)
            {
                _logger.Log($"{nameof(PrismApplicationBase)}.{nameof(InternalInitialize)}", Category.Info, Priority.None);
            }

            // dependecy injection
            _containerExtension = CreateContainerExtension();
            RegisterRequiredTypes(_containerExtension as IContainerRegistry);

            Debug.WriteLine("[App.RegisterTypes()]");
            RegisterTypes(_containerExtension as IContainerRegistry);

            Debug.WriteLine("Dependency container has just been finalized.");
            _containerExtension.FinalizeExtension();

            // now we can start logging instead of debug/write
            _logger = Container.Resolve <ILoggerFacade>();

            // finalize the application
            ConfigureViewModelLocator();

            ConfigureModuleCatalog(Container.Resolve <IModuleCatalog>());
            InitializeModules();
        }
コード例 #3
0
ファイル: PrismApplicationBase.cs プロジェクト: lv1il0s/Prism
        /// <summary>
        /// Runs the initialization sequence to configure the Prism application.
        /// </summary>
        public virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureModuleCatalog(_moduleCatalog);

            var regionAdapterMappins = _containerExtension.Resolve <RegionAdapterMappings>();

            ConfigureRegionAdapterMappings(regionAdapterMappins);

            var defaultRegionBehaviors = _containerExtension.Resolve <IRegionBehaviorFactory>();

            ConfigureDefaultRegionBehaviors(defaultRegionBehaviors);

            RegisterFrameworkExceptionTypes();

            var shell = CreateShell();

            if (shell != null)
            {
                _containerExtension.Resolve <IRegionNavigationService>().NavigationFailed += (s, e) => Console.WriteLine($"Region navigation failed {e.Error}");
                RegionManager.SetRegionManager(shell, _containerExtension.Resolve <IRegionManager>());
                RegionManager.UpdateRegions();
                InitializeShell(shell);
            }

            InitializeModules();
        }
コード例 #4
0
        /// <summary>
        /// Runs the initialization sequence to configure the Prism application.
        /// </summary>
        protected virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureModuleCatalog(_moduleCatalog);

            var regionAdapterMappings = _containerExtension.Resolve <RegionAdapterMappings>();

            ConfigureRegionAdapterMappings(regionAdapterMappings);

            var defaultRegionBehaviors = _containerExtension.Resolve <IRegionBehaviorFactory>();

            ConfigureDefaultRegionBehaviors(defaultRegionBehaviors);

            RegisterFrameworkExceptionTypes();

            var shell = CreateShell();

            if (shell != null)
            {
                MvvmHelpers.AutowireViewModel(shell);
                RegionManager.SetRegionManager(shell, _containerExtension.Resolve <IRegionManager>());
                RegionManager.UpdateRegions();
                InitializeShell(shell);
            }

            InitializeModules();
        }
コード例 #5
0
        /// <summary>
        /// Runs the initialization sequence to configure the Prism application.
        /// </summary>
        public virtual void Initialize()
        {
            _containerExtension = CreateContainerExtension();
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureServiceLocator();

            ConfigureModuleCatalog(_moduleCatalog);

            var regionAdapterMappins = _containerExtension.Resolve <RegionAdapterMappings>();

            ConfigureRegionAdapterMappings(regionAdapterMappins);

            var defaultRegionBehaviors = _containerExtension.Resolve <IRegionBehaviorFactory>();

            ConfigureDefaultRegionBehaviors(defaultRegionBehaviors);

            RegisterFrameworkExceptionTypes();

            var shell = CreateShell();

            if (shell != null)
            {
                RegionManager.SetRegionManager(shell, _containerExtension.Resolve <IRegionManager>());
                RegionManager.UpdateRegions();
                InitializeShell(shell);
                InitializeModules();
            }
        }
コード例 #6
0
        protected virtual void SetUp()
        {
            /* ==================================================================================================
             * setting up auto mapper
             * ================================================================================================*/
            AutoMapperSettup();

            /* ==================================================================================================
             * Init container (use Autofac)
             * ================================================================================================*/
            _containerExtension = new AutofacContainerExtension(new ContainerBuilder());

            /* ==================================================================================================
             * Registers the required types of prism.
             * ================================================================================================*/
            RegisterRequiredTypes(_containerExtension);

            /* ==================================================================================================
             * Register for our types which defined in Core project
             * ================================================================================================*/
            DependencyRegistrar.Current.Init(_containerExtension);

            /* ==================================================================================================
             * finish setting
             * ================================================================================================*/
            _containerExtension.FinalizeExtension();
        }
コード例 #7
0
 static ContainerProviderExtensionFixture()
 {
     _containerExtension.RegisterInstance <IService>(_unnamedService);
     foreach (var kvp in _namedServiceDictionary)
     {
         _containerExtension.RegisterInstance <IService>(kvp.Value, kvp.Key);
     }
     _containerExtension.FinalizeExtension();
 }
コード例 #8
0
        protected virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            _containerExtension.CreateScope();
            NavigationService = _containerExtension.Resolve <INativeNavigationService>();
        }
コード例 #9
0
        static ContainerProviderExtensionFixture()
        {
            // Preload assembly to resolve 'xmlns:prism' on xaml.
            Assembly.Load("Prism.Wpf");

            _containerExtension.RegisterInstance <IService>(_unnamedService);
            foreach (var kvp in _namedServiceDictionary)
            {
                _containerExtension.RegisterInstance <IService>(kvp.Value, kvp.Key);
            }
            _containerExtension.FinalizeExtension();
        }
コード例 #10
0
        private void InternalInitialize()
        {
            // don't forget there is no logger yet
            Debug.WriteLine($"{nameof(PrismApplicationBase)}.{nameof(InternalInitialize)}");

            // dependecy injection
            _containerExtension = CreateContainer();
            RegisterRequiredTypes(_containerExtension as IContainerRegistry);
            RegisterTypes(_containerExtension as IContainerRegistry);
            _containerExtension.FinalizeExtension();

            // finalize the application
            ConfigureViewModelLocator();
        }
コード例 #11
0
        /// <summary>
        /// Run the bootstrapper process.
        /// </summary>
        public virtual void Initialize()
        {
            _containerExtension = CreateContainerExtension();
            RegisterRequiredTypes(_containerExtension);
            PlatformInitializer?.RegisterTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            _moduleCatalog = Container.Resolve <IModuleCatalog>();
            ConfigureModuleCatalog(_moduleCatalog);

            NavigationService = _containerExtension.CreateNavigationService(null);

            InitializeModules();
        }
コード例 #12
0
        protected virtual void Initialize()
        {
            _containerExtension = CreateContainerExtension();
            _moduleCatalog      = CreateModuleCatalog();
            _parser             = CreateParser();

            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureServiceLocator();

            ConfigureModuleCatalog(_moduleCatalog);
            InitializeModules();
        }
コード例 #13
0
ファイル: DroidAppBase.cs プロジェクト: polepage/CS.Utils
        public override void OnCreate()
        {
            base.OnCreate();

            _containerExtension = CreateContainerExtension();
            _moduleCatalog      = CreateModuleCatalog();

            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureServiceLocator();

            ConfigureModuleCatalog(_moduleCatalog);
            InitializeModules();
        }
コード例 #14
0
        private void InternalInitialize()
        {
            // dependecy injection
            _containerExtension = CreateContainerExtension();
            RegisterRequiredTypes(_containerExtension);

            RegisterTypes(_containerExtension);

            _containerExtension.FinalizeExtension();

            // finalize the application
            ConfigureViewModelLocator();

            ConfigureModuleCatalog(Container.Resolve <IModuleCatalog>());
            InitializeModules();
        }
コード例 #15
0
ファイル: PrismApplicationBase.cs プロジェクト: DT021/Prism-1
        /// <summary>
        /// Run the bootstrapper process.
        /// </summary>
        protected virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            RegisterRequiredTypes(_containerExtension);
            PlatformInitializer?.RegisterTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            _moduleCatalog = Container.Resolve <IModuleCatalog>();
            ConfigureModuleCatalog(_moduleCatalog);

            _containerExtension.CreateScope();
            NavigationService = _containerExtension.Resolve <INavigationService>();

            InitializeModules();
        }
コード例 #16
0
        /// <inheritdoc />
        public virtual Result OnStartup(UIControlledApplication application)
        {
            ViewModelLocationProvider.SetDefaultViewModelFactory((view, type) => Container.Resolve(type));

            _containerExtension.RegisterInstance(_containerExtension);
            _containerExtension.RegisterInstance(_moduleCatalog);

            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);

            _containerExtension.FinalizeExtension();

            ServiceLocator.SetLocatorProvider(() => Container.Resolve <IServiceLocator>());

            ConfigureModuleCatalog(_moduleCatalog);

            RegionAdapterMappings regionAdapterMappings = Container.Resolve <RegionAdapterMappings>();

            if (regionAdapterMappings != null)
            {
                regionAdapterMappings.RegisterMapping(typeof(Selector), _containerExtension.Resolve <SelectorRegionAdapter>());
                regionAdapterMappings.RegisterMapping(typeof(ItemsControl), _containerExtension.Resolve <ItemsControlRegionAdapter>());
                regionAdapterMappings.RegisterMapping(typeof(ContentControl), _containerExtension.Resolve <ContentControlRegionAdapter>());
            }

            IRegionBehaviorFactory regionBehaviorFactory = Container.Resolve <IRegionBehaviorFactory>();

            if (regionBehaviorFactory != null)
            {
                regionBehaviorFactory.AddIfMissing(BindRegionContextToDependencyObjectBehavior.BehaviorKey, typeof(BindRegionContextToDependencyObjectBehavior));
                regionBehaviorFactory.AddIfMissing(RegionActiveAwareBehavior.BehaviorKey, typeof(RegionActiveAwareBehavior));
                regionBehaviorFactory.AddIfMissing(SyncRegionContextWithHostBehavior.BehaviorKey, typeof(SyncRegionContextWithHostBehavior));
                regionBehaviorFactory.AddIfMissing(RegionManagerRegistrationBehavior.BehaviorKey, typeof(RegionManagerRegistrationBehavior));
                regionBehaviorFactory.AddIfMissing(RegionMemberLifetimeBehavior.BehaviorKey, typeof(RegionMemberLifetimeBehavior));
                regionBehaviorFactory.AddIfMissing(ClearChildViewsRegionBehavior.BehaviorKey, typeof(ClearChildViewsRegionBehavior));
                regionBehaviorFactory.AddIfMissing(AutoPopulateRegionBehavior.BehaviorKey, typeof(AutoPopulateRegionBehavior));
                regionBehaviorFactory.AddIfMissing(IDestructibleRegionBehavior.BehaviorKey, typeof(IDestructibleRegionBehavior));
            }

            ExceptionExtensions.RegisterFrameworkExceptionType(typeof(ActivationException));
            ExceptionExtensions.RegisterFrameworkExceptionType(typeof(ContainerException));

            Container.Resolve <IModuleManager>()?.Run();

            return(Result.Succeeded);
        }
コード例 #17
0
        private void InternalInitialize()
        {
            // don't forget there is no logger yet
            if (_logStartingEvents)
            {
                _logger.Log($"{nameof(PrismApplicationBase)}.{nameof(InternalInitialize)}", Category.Info, Priority.None);
            }

            // dependecy injection
            ContainerLocator.SetContainerExtension(CreateContainerExtension);

            Debug.WriteLine("[App.RegisterTypes()]");
            _containerExtension = ContainerLocator.Current;
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);

            if (_containerExtension is IContainerRegistry registry)
            {
                registry.RegisterSingleton <ILoggerFacade, DebugLogger>();
                registry.RegisterSingleton <IEventAggregator, EventAggregator>();
                RegisterInternalTypes(registry);
            }
            Debug.WriteLine("Dependency container has just been finalized.");
            _containerExtension.FinalizeExtension();

            ConfigureModuleCatalog(_moduleCatalog);

            RegionAdapterMappings regionAdapterMappins = _containerExtension.Resolve <RegionAdapterMappings>();

            ConfigureRegionAdapterMappings(regionAdapterMappins);

            IRegionBehaviorFactory defaultRegionBehaviors = _containerExtension.Resolve <IRegionBehaviorFactory>();

            ConfigureDefaultRegionBehaviors(defaultRegionBehaviors);

            RegisterFrameworkExceptionTypes();

            // now we can start logging instead of debug/write
            _logger = Container.Resolve <ILoggerFacade>();

            // finalize the application
            ConfigureViewModelLocator();
        }
コード例 #18
0
        /// <summary>
        /// Run the bootstrapper process.
        /// </summary>
        protected virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            RegisterRequiredTypes(_containerExtension);
            PlatformInitializer?.RegisterTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            AutoRegistrationViewNameProvider.SetDefaultProvider(GetNavigationSegmentNameFromType);
            GetType().AutoRegisterViews(_containerExtension);
            _containerExtension.FinalizeExtension();

            _moduleCatalog = Container.Resolve <IModuleCatalog>();
            ConfigureModuleCatalog(_moduleCatalog);

            _containerExtension.CreateScope();
            NavigationService = _containerExtension.Resolve <INavigationService>();

            InitializeModules();
        }
コード例 #19
0
        /// <summary>
        /// Run the bootstrapper process.
        /// </summary>
        public virtual void Initialize()
        {
            _containerExtension = CreateContainerExtension();
            RegisterRequiredTypes(_containerExtension);
            PlatformInitializer?.RegisterTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            GetType().AutoRegisterViews(_containerExtension);
            _containerExtension.FinalizeExtension();

            if (_setFormsDependencyResolver)
            {
                SetDependencyResolver(_containerExtension);
            }

            _moduleCatalog = Container.Resolve <IModuleCatalog>();
            ConfigureModuleCatalog(_moduleCatalog);

            NavigationService = _containerExtension.CreateNavigationService(null);

            InitializeModules();
        }
コード例 #20
0
        /// <summary>
        /// Run the bootstrapper process.
        /// </summary>
        protected virtual void Initialize()
        {
            _containerExtension = CreateContainerExtension();
            RegisterRequiredTypes(_containerExtension);
            PlatformInitializer?.RegisterTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            AutoRegistrationViewNameProvider.SetDefaultProvider(GetNavigationSegmentNameFromType);
            GetType().AutoRegisterViews(_containerExtension);
            _containerExtension.FinalizeExtension();

            if (_setFormsDependencyResolver)
            {
                SetDependencyResolver(_containerExtension);
            }

            _moduleCatalog = Container.Resolve <IModuleCatalog>();
            ConfigureModuleCatalog(_moduleCatalog);

            NavigationService = _containerExtension.CreateNavigationService(null);

            InitializeModules();
        }
コード例 #21
0
        /// <summary>
        /// Runs the initialization sequence to configure the Prism application.
        /// </summary>
        protected virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureModuleCatalog(_moduleCatalog);
            RegisterFrameworkExceptionTypes();

            var shell = CreateShell();

            if (shell != null)
            {
                MvvmHelpers.AutowireViewModel(shell);
                InitializeShell(shell);
            }

            InitializeModules();
        }
コード例 #22
0
        /// <summary>
        /// Runs the initialization sequence to configure the Prism application.
        /// </summary>
        public virtual void Initialize()
        {
            ContainerLocator.SetContainerExtension(CreateContainerExtension);
            _containerExtension = ContainerLocator.Current;
            _moduleCatalog      = CreateModuleCatalog();
            RegisterRequiredTypes(_containerExtension);
            RegisterTypes(_containerExtension);
            _containerExtension.FinalizeExtension();

            ConfigureModuleCatalog(_moduleCatalog);

            var regionAdapterMappins = _containerExtension.Resolve <RegionAdapterMappings>();

            ConfigureRegionAdapterMappings(regionAdapterMappins);

            var defaultRegionBehaviors = _containerExtension.Resolve <IRegionBehaviorFactory>();

            ConfigureDefaultRegionBehaviors(defaultRegionBehaviors);

            RegisterFrameworkExceptionTypes();

            var shell = CreateShell();

            if (shell != null)
            {
                _containerExtension.Resolve <IRegionNavigationService>().NavigationFailed += (s, e) => Console.WriteLine($"Region navigation failed {e.Error}");
                InitializeShell(shell);

                void FinalizeInitialization()
                {
                    RegionManager.SetRegionManager(shell, _containerExtension.Resolve <IRegionManager>());
                    RegionManager.UpdateRegions();

                    InitializeModules();
                    OnInitialized();
                }

                if (shell is FrameworkElement fe)
                {
                    void OnLoaded(object sender, object args)
                    {
                        FinalizeInitialization();
                        fe.Loaded -= OnLoaded;
                    }

#if HAS_UNO
                    // Uno currently loads items earlier than UWP, so we can check
                    // for the IsLoaded property. UWP got that property in SDK 17763,
                    // meaning that the condition can be removed once the SDK is updated
                    // in Prism.Uno.
                    if (fe.IsLoaded)
                    {
                        FinalizeInitialization();
                    }
                    else
#endif
                    {
                        // We need to delay the initialization after the shell has been loaded, otherwise
                        // the visual tree is not materialized for the RegionManager to be available.
                        // See https://github.com/PrismLibrary/Prism/issues/2102 for more details.
                        fe.Loaded += OnLoaded;
                    }
                }
                else
                {
                    FinalizeInitialization();
                }
            }
        }
コード例 #23
0
 public void FinalizeExtension() => inner.FinalizeExtension();