示例#1
0
        /// <inheritdoc />
        public void RegisterTypes(IContainerProvider container)
        {
            container.RegisterFactory <ILogger>(_ => LogManager.GetCurrentClassLogger());

            container.RegisterInstance <IDbContextFactory>(new DbContextFactory(() => new EngineDbContext(container.GetDbContextOptions <EngineDbContext>())));

            container.RegisterType <IModuleService, ModuleService>();
            container.RegisterType <IModuleConnectionService, ModuleConnectionService>();

            container.RegisterSingleton <ISettingsRegistry, SettingsRegistry>();
            container.RegisterSingleton <ISettingsService, SettingsService>();
            container.RegisterInstance <ISettingHandlerFactory>(new SettingHandlerFactory(t => (ISettingHandler)container.Resolve(t)));

            container.RegisterSingleton <IApiServer, ApiServer>();
            container.RegisterInstance <IApiServerConfiguration>(new ApiConfiguration {
                PipeName = Globals.EnginePipeName
            });
            container.RegisterSingleton <IApiClient, ApiClient>();
            container.RegisterInstance <IApiClientConfiguration>(new ApiConfiguration {
                PipeName = Globals.AppPipeName
            });
            container.RegisterSingleton <IRequestProcessorFactory, RequestProcessorFactory>();
            container.RegisterSingleton <IMessageSerializer, MessagePackMessageSerializer>();

            container.RegisterSingleton <IUpdateService, HttpUpdateService>();
        }
示例#2
0
        public void RegisterTypes(IContainerProvider container)
        {
            var configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddJsonFile("appsettings.json", false);
            var configuration = configurationBuilder.Build();

            container.RegisterInstance <IConfiguration>(configuration);

            container.RegisterFactory <ILogger>(c => LogManager.GetCurrentClassLogger());

            container.RegisterInstance <IDbContextFactory>(new DbContextFactory(() => new AppDbContext(container.GetDbContextOptions <AppDbContext>())));

            container.RegisterSingleton <INavigationManager, NavigationManager>();

            container.RegisterSingleton <IApplicationStateService, ApplicationStateService>();

            container.RegisterSingleton <IResourceRegistry, ResourceRegistry>();
            container.RegisterSingleton <IMenuItemRegistry, MenuItemRegistry>();
            container.RegisterSingleton <IToolBarRegistry, ToolBarRegistry>();
            container.RegisterSingleton <IWidgetRegistry, WidgetRegistry>();
            container.RegisterSingleton <IWidgetFactory, WidgetFactory>();

            container.RegisterSingleton <IRequestProcessorFactory, RequestProcessorFactory>();
            container.RegisterType <IRequestProcessor, ApiEventRequestProcessor>();
            container.RegisterSingleton <IApiServer, ApiServer>();
            container.RegisterInstance <IApiServerConfiguration>(new ApiConfiguration {
                PipeName = Globals.AppPipeName
            });
            container.RegisterSingleton <IApiClient, ApiClient>();
            container.RegisterInstance <IApiClientConfiguration>(new ApiConfiguration {
                PipeName = Globals.EnginePipeName
            });
            container.RegisterSingleton <IMessageSerializer, MessagePackMessageSerializer>();

            container.RegisterSingleton <ISettingsRegistry, SettingsRegistry>();
            container.RegisterSingleton <ISettingsService, SettingsService>();
            container.RegisterInstance <ISettingHandlerFactory>(new SettingHandlerFactory(t => (ISettingHandler)container.Resolve(t)));

            container.RegisterDialog <MessageBoxView, MessageBoxViewModel>();

            container.RegisterView <MainMenuView, MainMenuViewModel>();
            container.RegisterView <MainStatusBarView, MainStatusBarViewModel>();
            container.RegisterView <ToolBarView, ToolBarViewModel>();

            container.RegisterView <StartupView, StartupViewModel>();
            container.RegisterView <StatusView, StatusViewModel>();
            container.RegisterView <MainView, MainViewModel>();
            container.RegisterView <SettingsView, SettingsViewModel>();
            container.RegisterView <AboutView, AboutViewModel>();

            container.RegisterRequestProcessor <UpdatesRequestProcessor>();
            container.RegisterSingleton <IUpdateService, HttpUpdateService>();
            container.RegisterSingleton <UpdateHandler>();
        }
 /// <summary>
 /// Creates a widget registration so the widget is shown in the widget tool box and can be loaded in the widget panel.
 /// </summary>
 /// <typeparam name="TWidget">The widget view type.</typeparam>
 /// <typeparam name="TViewModel">The widget view model type.</typeparam>
 /// <param name="container"></param>
 /// <param name="defaultName">The default name that is shown in the widget tool box and used when creating a widget.</param>
 /// <param name="description">A description that is shown in the widget tool box.</param>
 public static void RegisterWidget <TWidget, TViewModel>(this IContainerProvider container, object defaultName, object description)
     where TWidget : Widget
     where TViewModel : WidgetViewModel
 {
     container.RegisterFactory <Widget>(c =>
     {
         var widget = c.Resolve <TWidget>();
         return(widget);
     }, typeof(TViewModel).AssemblyQualifiedName);
     container.RegisterInstance(new WidgetDescription
     {
         Name          = defaultName,
         Description   = description,
         ViewType      = typeof(TWidget),
         ViewModelType = typeof(TViewModel)
     }, typeof(TViewModel).AssemblyQualifiedName);
 }
        /// <summary>
        /// Registers a view and it's corresponding view model.
        /// </summary>
        /// <typeparam name="TView">The view type.</typeparam>
        /// <typeparam name="TViewModel">The view model type.</typeparam>
        /// <param name="container"></param>
        public static void RegisterView <TView, TViewModel>(this IContainerProvider container)
            where TView : FrameworkElement
            where TViewModel : IViewModel
        {
            container.RegisterType <TView>();
            container.RegisterFactory <object>(c =>
            {
                var view      = c.Resolve <TView>();
                var viewModel = c.Resolve <TViewModel>();

                view.DataContext = viewModel;

                return(view);
            }, typeof(TView).Name);

            //container.RegisterTypeForNavigation<TView>();
        }
 public static void RegisterFactory <T>(this IContainerProvider container, Func <IContainerProvider, object> factory, string name = null)
 {
     container.RegisterFactory(typeof(T), factory, name);
 }