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