private static void RegistroViewModel(SimpleIoc ioc) { ioc.Register <DetallesViewModel>(); ioc.Register <CategoriaViewModel>(); ioc.Register <MainPageViewModel>(); ioc.Register <ServiceNavigation>(); }
/// <summary> /// Register the IoC kernel and the common dependencies /// </summary> /// <param name="iocKernel">The instance of the SimpleIoC container</param> public static void RegisterServices(SimpleIoc iocKernel) { // Register the Repositories iocKernel.Register<IArtistRepository, ArtistRepository>(); iocKernel.Register<IGenreRepository, GenreRepository>(); iocKernel.Register<IPlaylistRepository, PlaylistRepository>(); iocKernel.Register<IAlbumRepository, AlbumRepository>(); // A special repository to expose the persistence methods so // the Save method can be called when the application is suspending iocKernel.Register<IPersistenceRepository, PersistenceRepository>(); // Register the Services iocKernel.Register<ILastFMService, LastFmProxy>(); iocKernel.Register<IMusicFileService, MusicFileService>(); // Register the factories iocKernel.Register<AbstractFactory<Artist>, ArtistFactory>(); iocKernel.Register<AbstractFactory<Wiki>, WikiFactory>(); iocKernel.Register<AbstractFactory<Image>, ImageFactory>(); iocKernel.Register<AbstractFactory<Genre>, GenreFactory>(); iocKernel.Register<AbstractFactory<PlayList>, PlaylistFactory>(); // register here, it is dependent on the Artist and Wiki factories. iocKernel.Register<AbstractFactory<Album>, AlbumFactory>(); // regist after album, it is dependent on Album and Artist factories. iocKernel.Register<AbstractFactory<Track>, TrackFactory>(); }
public static void RegisterServices(this SimpleIoc container) { // Core commands (should be in engine) container.Register <CurrentDirectoryCommand>(); container.Register <TexoCommand>(); // Simple commands container.Register <ReferenceCheckCommand>(); container.Register <CommandLineCommand>(); // File manager container.Register <ISerialisationService, JsonSerialisationService>(); container.Register <IStageService, StageService>(); container.Register <IStashService, StashService>(); container.Register <FileManagerCommand>(); // Nuget manager container.Register <IProjectManagementService, ProjectManagementService>(); container.Register <IPackageManagementService, PackageManagementService>(); container.Register <IConfigManagementService, ConfigManagementService>(); container.Register <ISourceManagementService, SourceManagementService>(); container.Register <IManagementService, ManagementService>(); container.Register <Commands.NugetManager.Stage.IStageService, Commands.NugetManager.Stage.StageService>(); container.Register <NugetManagerCommand>(); // View container.Register <IMarkdownService, MarkdownService>(); container.Register <IWpfRenderService, WpfMarkdownRenderService>(); container.Register <WpfViewService>(); container.Register <IViewService>(container.GetInstance <WpfViewService>); container.Register <IPromptableViewService>(container.GetInstance <WpfViewService>); // PowerShell Fallback container.Register <IFallbackService, PowerShellFallbackService>(); }
public static void RegisterIf <TClass>(this SimpleIoc container, Func <TClass> factory) where TClass : class { if (!container.IsRegistered <TClass>()) { container.Register <TClass>(factory); } }
public BookmarkedService(Guid accountGuid, SimpleIoc simpleIoc, HttpServerUtilityBase server) { _accountGuid = accountGuid; _server = server; _simpleIoc = simpleIoc; RegisterContainer(); }
public static void RegisterIf <TClass>(this SimpleIoc container, bool createInstanceImmediately) where TClass : class { if (!container.IsRegistered <TClass>()) { container.Register <TClass>(createInstanceImmediately); } }
public static void InitHttpTest(this SimpleIoc simpleIoc) { var simpleConfigFile = SimpleConfigFactory.ResolveFile(); var httpTestConfig = AsyncHelper.RunSync(() => simpleConfigFile.ReadFile <HttpTestConfig>(null)); if (httpTestConfig == null) { httpTestConfig = HttpTestConfig.Instance; simpleConfigFile.SaveFile(HttpTestConfig.Instance); } HttpTestConfig.Instance = httpTestConfig; simpleIoc.Register <ISimpleConfigFile>(() => simpleConfigFile); simpleIoc.Register <HttpTestConfig>(() => HttpTestConfig.Instance); simpleIoc.Register <IWebApiTester>(() => WebApiTester.Resolve()); simpleIoc.Register <WebApiTester>(() => (WebApiTester)simpleIoc.Resolve <IWebApiTester>()); simpleIoc.Register <TestClientSpanApiVo>(() => new TestClientSpanApiVo(simpleIoc.Resolve <ISimpleConfigFile>(), simpleIoc.Resolve <IWebApiTester>())); simpleIoc.Register <MainVo>(() => new MainVo(simpleIoc.Resolve <ISimpleConfigFile>(), simpleIoc.Resolve <IWebApiTester>())); var logFileEnabled = httpTestConfig.LogFileEnabled; SimpleLogFactory.Instance.LogFileEnabledFunc = (category) => logFileEnabled; }
private void InitializeHttpClient(SimpleIoc serviceProvider) { serviceProvider.Register(() => new HttpClient(new HttpClientHandler(), false) { BaseAddress = new Uri(ClientConstants.BaseApiUrl) }); }
public static Task InitialiseWithCommandsAsync(this TexoEngine engine, SimpleIoc container) { TexoConfiguration.Builder configuration = TexoConfiguration.CreateDefault().ToBuilder(); string solutionFile = container.GetInstance <ISolutionPathProvider>().GetPath(); if (!string.IsNullOrEmpty(solutionFile)) { configuration.Environment.Variables.Add(VsVariableNames.SOLUTION_FILE, solutionFile); } configuration.Runtime.Commands.AddRange(new[] { ReferenceCheckCommand.BuildConfiguration(), CommandLineCommand.BuildConfiguration(), FileManagerBuilder.BuildCommand(), NugetManagerBuilder.BuildCommand(), CalcCommand.BuildConfiguration(), //ClipboardBuilder.BuildCommand(), FunctionsBuilder.BuildCommand(), CodeBaseSearchBuilder.BuildCommand(), SpinSportBuilder.BuildCommand() }); return(engine.InitialiseAsync(configuration.ToImmutable())); }
public static SimpleServiceLocator BuildAndRegister(SimpleIoc container) { SimpleServiceLocator locator = new SimpleServiceLocator(container); CommonServiceLocator.ServiceLocator.SetLocatorProvider(() => locator); return(locator); }
private static void RegisterDependencies(SimpleIoc ioc) { ServiceLocator.SetLocatorProvider(() => ioc); ioc.Register <IConfigurationService>(() => XmlDocumentConfigurationService.Instance); IConfigurationService configService = ioc.GetInstance <IConfigurationService>(); if (ViewModelBase.IsInDesignModeStatic || configService.Config.DesignMode) { // https://olitee.com/2015/01/mvvmlight-simpleioc-design-time-error/ if (!ioc.IsRegistered <ITeslaTagsService>()) { ioc.Register <ITeslaTagsService, DesignTeslaTagService>(); } } else { // Create run time view services and models ioc.Register <ITeslaTagsService, RealTeslaTagService>(); } ioc.Register <IWindowService, WindowService>(); ioc.Register <IFileDialogService, ComFileDialogService>(); ioc.Register <MainViewModel>(); }
/// <summary> /// Registers FFmpeg classes into SimpleIoc container. /// </summary> /// <param name="services">The IoC services container.</param> public static SimpleIoc AddFFmpeg(this SimpleIoc services) { if (services == null) { throw new ArgumentNullException(nameof(services)); } // FFmpeg services.Register <IFileInfoParserFactory, FileInfoParserFactory>(); services.Register <IMediaConfig>(() => new MediaConfig(services.GetInstance <IWindowsApiService>(), services.GetInstance <IFileSystemService>())); services.Register <IMediaEncoder, MediaEncoder>(); services.Register <IMediaInfoReader, MediaInfoReader>(); services.Register <IMediaMuxer, MediaMuxer>(); services.Register <IMediaScript, MediaScript>(); services.Register <IProcessWorkerFactory>(() => new ProcessWorkerFactory(services.GetInstance <IMediaConfig>(), services.GetInstance <IUserInterfaceManager>())); services.Register <ITimeLeftCalculatorFactory, TimeLeftCalculatorFactory>(); // Services services.Register <IEnvironmentService, EnvironmentService>(); services.Register <IFileSystemService, FileSystemService>(); services.Register <IProcessFactory, ProcessFactory>(); services.Register <IWindowsApiService, WindowsApiService>(); return(services); }
public AppDependencies() { dependencies = SimpleIoc.Default; /* ------ VIEW MODELS ------ */ dependencies.Register <MainViewModel>(); dependencies.Register <GameConfigViewModel>(); dependencies.Register <HomeViewModel>(); dependencies.Register <GamePickerViewModel>(); dependencies.Register <SettingsViewModel>(); dependencies.Register <GeneralSettingsViewModel>(); dependencies.Register <EmulatorSettingsViewModel>(); dependencies.Register <GamesSettingsViewModel>(); dependencies.Register <FanGameEditorViewModel>(); /* ------ MODELS ------ */ dependencies.Register <SettingsAndGamesManager>(); dependencies.Register <GameConfigService>(); dependencies.Register <ActiveGameCategory>(); dependencies.Register <GamePickerList>(); dependencies.Register <IExecutorService, FileSystemExecutorService>(); dependencies.Register <GameCategoryService>(); dependencies.Register <OfficialGamesTemplateService>(); dependencies.Register <FileSystemBrowserService>(); dependencies.Register <FileAccessService>(); dependencies.Register <ISettingsAndGamesRepository, FileSystemSettingsAndGamesRepository>(); dependencies.Register <LaunchGameService>(); dependencies.Register <LaunchRandomGameService>(); dependencies.Register <Random>(() => new()); dependencies.Register <INp21ntConfigRepository, FileSystemNp21ntConfigRepository>(); dependencies.Register <Np21ntConfigDefaultsService>(); dependencies.Register <PathExistanceService>(); dependencies.Register <FanGameEditingService>(); }
private static SimpleIoc RegisterInfrastructure(this SimpleIoc simpleIoc) { simpleIoc.Register <ISoapApiClient, SoapApiClient>(); simpleIoc.Register <IBackgroundTaskRegistrar, BackgroundTaskRegistrar>(); return(simpleIoc); }
public static void RegisterWithMessageBus(this SimpleIoc container) { IServiceMessageBusRegister register = container.GetInstance <IServiceMessageBusRegister>(); register.Register(container.GetInstance <PowerShellFallbackService>()); //register.Register(container.GetInstance<ClipboardMonitoringService>()); }
private static ISimpleIoc DefaultServices() { var container = new SimpleIoc(); container.Register(() => new PropertyGetterCache()); return(container); }
public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); ////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>(); ////} SimpleIoc services = SimpleIoc.Default; //региструем в контейнере сервиса класс services.Register <MainWindowViewModel>(); services.Register <IRecipientManager, RecipientsManager>(); // регистрируем менеджера получателей c помощью интерфейса services.Register <IRecipientsStore, RecipientsStoreInMemory>(); //регистрируем ср-во хранения данных для менеджера получателей /* TODO Если мы напишем другую реализацию хранения данных например через БД * то нужно подменить только в 1 месте * services.Register<IRecipientsStore, ТУТ БУДЕТ Метод Хранения данных>(); */ }
private static void RegistroViewModel(SimpleIoc ioc) { ioc.Register <DetailsViewModel>(); ioc.Register <MoviesViewModel>(); ioc.Register <MainViewModel>(); ioc.Register <SettingsViewModel>(); }
public ViewModelLocator() { var nuioc = new SimpleIoc(); ServiceLocator.SetLocatorProvider(() => nuioc); // Services nuioc.Register <IConsoleService, ConsoleService>(); if (ViewModelBase.IsInDesignModeStatic) { nuioc.Register <ISerialPortService>(() => new StubSerialPortService()); } else { nuioc.Register <ISerialPortService>(() => new SerialPortService()); } nuioc.Register <ISettingsService, SettingsService>(); nuioc.Register <IClipboardService, ClipboardService>(); nuioc.Register <IDialogService, DialogService>(); nuioc.Register <IApplicationServices, ApplicationServices>(); nuioc.Register <IWindowService, WindowService>(); nuioc.Register <IPrinterService, PrinterService>(); nuioc.Register <IConsoleFormatService, ConsoleFormatService>(); nuioc.Register <ITaskHelpers, TaskHelpers>(); // ViewModels nuioc.Register <ConsoleViewModel, ConsoleViewModel>(); nuioc.Register <SessionSetupViewModel, SessionSetupViewModel>(); nuioc.Register <SettingsViewModel, SettingsViewModel>(); }
private void InitApp() { var container = new SimpleIoc(); container.Register <IUserProfileRepository>( () => new UserProfileRepository()); container.Register <INavigationService>( () => new NavigationService()); container.Register( () => new EntryViewModel( container.Get <INavigationService>())); container.Register( () => new UserProfileViewModel( container.Get <IUserProfileRepository>(), container.Get <INavigationService>())); container.Register( () => new LanguagesViewModel( container.Get <INavigationService>())); ViewModelProvider.SetFactory(new DependencyProviderViewModelFactory(container)); }
public static void RegisterServices(this SimpleIoc container) { // Visual Studio container.Register <ISolutionPathProvider, DteSolutionPathProvider>(); // Core commands (should be in engine) container.Register <CurrentDirectoryCommand>(); container.Register <TexoCommand>(); container.Register <HelpCommand>(); container.Register <ClearCommand>(); // Simple commands container.Register <ReferenceCheckCommand>(); container.Register <CommandLineCommand>(); // File manager container.Register <ISerialisationService, JsonSerialisationService>(); container.Register <IStageService, StageService>(); container.Register <IStashService, StashService>(); container.Register <FileManagerCommand>(); // Nuget manager container.Register <IProjectManagementService, ProjectManagementService>(); container.Register <IPackageManagementService, PackageManagementService>(); container.Register <IConfigManagementService, ConfigManagementService>(); container.Register <ISourceManagementService, SourceManagementService>(); container.Register <IManagementService, ManagementService>(); container.Register <Texo.Commands.NugetManager.Stage.IStageService, Texo.Commands.NugetManager.Stage.StageService>(); container.Register <NugetManagerCommand>(); // Calculator container.Register <CalcCommand>(); // Clipboard // container.Register<ClipboardMonitoringService>(); // container.Register<ClipboardCommand>(); // Developer Functions container.Register <FunctionsCommand>(); // Code-base-search container.Register <ICodeBaseSearchService, CodeBaseSearchService>(); container.Register <CodeBaseSearchCommand>(); // SpinSport container.Register <ISolutionDirectoryProvider, SolutionDirectoryProvider>(); container.Register <SpinSportCommand>(); // View container.Register <IMarkdownService, MarkdownService>(); container.Register <IWpfRenderService, WpfMarkdownRenderService>(); container.Register <WpfViewService>(); container.Register <IViewService>(container.GetInstance <WpfViewService>); container.Register <IPromptableViewService>(container.GetInstance <WpfViewService>); // PowerShell Fallback container.Register <PowerShellFallbackService>(); container.Register <IFallbackService>(container.GetInstance <PowerShellFallbackService>); }
public static void Initialize(SimpleIoc serviceProvider) { var adoUnauthorizedCodes = new[] { HttpStatusCode.NonAuthoritativeInformation, HttpStatusCode.Unauthorized }; var unoHttpClientHandler = new UnoHttpClientHandler(); // iOS & wasm httpclient enabled by default #if NETFX_CORE || __ANDROID__ unoHttpClientHandler.AutomaticDecompression = DecompressionMethods.GZip; #endif // Client wire-up serviceProvider.Register(() => new HttpClient(unoHttpClientHandler, false) { BaseAddress = new Uri(ClientConstants.BaseAzureDevOpsApiUrl) }, "VSSPS"); serviceProvider.Register(() => new HttpClient(unoHttpClientHandler, false) { BaseAddress = new Uri(ClientConstants.AzureDevOpsRepositoryPath) }, "Repo"); serviceProvider.Register <IHttpRequestService>( () => new HttpRequestService( serviceProvider.GetInstance <HttpClient>("VSSPS"), adoUnauthorizedCodes), "VSSPSService"); serviceProvider.Register <IHttpRequestService>( () => new HttpRequestService( serviceProvider.GetInstance <HttpClient>("Repo"), adoUnauthorizedCodes), "RepoService"); serviceProvider.Register <IApplicationContext>(() => new ApplicationContext()); serviceProvider.Register <IOAuthClient>( () => new AzureADOAuthClient( serviceProvider.GetInstanceWithoutCaching <IHttpRequestService>("VSSPSService"), serviceProvider.GetInstanceWithoutCaching <IApplicationContext>())); serviceProvider.Register <IADOProfileClient>(() => new ADOProfileClient(serviceProvider.GetInstanceWithoutCaching <IHttpRequestService>("VSSPSService"))); serviceProvider.Register <IADOOrganizationClient>(() => new ADOOrganizationClient(serviceProvider.GetInstanceWithoutCaching <IHttpRequestService>("VSSPSService"))); serviceProvider.Register <IADOTeamClient>(() => new ADOTeamClient(serviceProvider.GetInstanceWithoutCaching <IHttpRequestService>("RepoService"))); // Business wire-up serviceProvider.Register <ISecureStorage>(() => new SecureStorage()); serviceProvider.Register <IAuthenticationService>(() => new AuthenticationService( serviceProvider.GetInstanceWithoutCaching <IOAuthClient>(), serviceProvider.GetInstance <ISecureStorage>())); serviceProvider.Register <IVSTSRepository>(() => new VSTSRepository( serviceProvider.GetInstanceWithoutCaching <IADOProfileClient>(), serviceProvider.GetInstanceWithoutCaching <IADOOrganizationClient>(), serviceProvider.GetInstanceWithoutCaching <IADOTeamClient>(), serviceProvider.GetInstance <IAuthenticationService>())); }
public void TestConstructWithServiceLocator() { var locator = new SimpleIoc(); var vm = new TestViewModel(locator); Assert.AreSame(locator, vm.Services); }
public static SimpleIoc ConfigureBusiness(this SimpleIoc simpleIoc) { return(simpleIoc .RegisterInfrastructure() .RegisterData() .RegisterRepositories() .RegisterServices()); }
public static void RegisterWithCheck <TClass>(this SimpleIoc ioc) where TClass : class { if (!ioc.IsRegistered <TClass>()) { ioc.Register <TClass>(); } }
internal GMRMainViewModel() { m_Resolver = new SimpleIoc(); m_Resolver.Register <IWebCommunitcation>(() => new GiantMultiplayerRobotWebCommunication()); m_Resolver.Register <AuthenticateCommandResult>(() => new AuthenticateCommandResult()); m_Resolver.Register <GetGamesPlayersCommandResult>(() => new GetGamesPlayersCommandResult(null)); m_Resolver.Register <IOSSetting>(() => new OSSetting()); }
public static void RegisterSafe <TImplementation>(this SimpleIoc ioc) where TImplementation : class { if (!ioc.IsRegistered <TImplementation>()) { ioc.Register <TImplementation>(); } }
private void InitApp() { var container = new SimpleIoc(); container.Register(() => new UserProfileViewModel()); LifecycleViewModelProvider.SetFactory( new DefaultLifecycleViewModelFactory(container)); }
/// <summary> /// Tracks instances post-creation. /// </summary> /// <param name="serviceLocator">The IoC container.</param> /// <param name="instance">The instance that was created.</param> internal virtual void InstanceCreated(SimpleIoc serviceLocator, object instance) { this.Instance = instance; this.serviceLocator = serviceLocator; if (this.LifetimeManager != null) { this.LifetimeManager.CreatingInstance(instance); } }
/// <summary> /// Avoids multiple attempts at registering when ViewModelLocator is created by the designer /// </summary> /// <typeparam name="TInterface"></typeparam> /// <typeparam name="TClass"></typeparam> public static void RegisterOnce <TInterface, TClass>(this SimpleIoc simpleIoc) where TClass : class where TInterface : class { if (!SimpleIoc.Default.IsRegistered <TInterface>()) { SimpleIoc.Default.Register <TInterface, TClass>(); } }
public static void Reregister <TClass>(this SimpleIoc self) where TClass : class { if (self.IsRegistered <TClass>()) { self.Unregister <TClass>(); } self.Register <TClass>(); }
internal override void InstanceCreated(SimpleIoc serviceLocator, object instance) { base.InstanceCreated(serviceLocator, instance); // Todo: also check for IDisposable if (instance is IDestructible) { var destructible = (IDestructible)instance; // inject this as IDestructible instance to create a point for lifetime release. destructible.Candidate = this; } }
/// <summary> /// Releases the container-instance by checking the LifetimeManager /// for destroyable behaviour and cleans up this lifetime management. /// </summary> public virtual void Release() { if (this.LifetimeManager != null) { this.LifetimeManager.DoDestroy(); } this.LifetimeManager = null; this.Instance = null; this.serviceLocator = null; //throw new NotImplementedException(); }
/// <summary> /// Initializes a new instance of the ViewModelLocator class. /// </summary> public ViewModelLocator() { var container = new SimpleIoc(); container.Register<MainViewModel>(); container.Register<HardLinkToolViewModel>(); //var builder = new ContainerBuilder(); //builder.RegisterType<MainViewModel>(); //IContainer container = builder.Build(); //var locator = new AutofacServiceLocator(container); ServiceLocator.SetLocatorProvider(() => container); }
public ViewModelLocator() { ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); if (ViewModelBase.IsInDesignModeStatic) { } else { _ioc = SimpleIoc.Default; RegisterViewModels(); } }
static Ioc() { Container = new SimpleIoc(); Container.Register<IDriveService, DriveService>(); Container.Register<IUpdater, Updater>(); Container.Register<IMessageBoxService, MessageBoxService>(); Container.Register<ILogger, Logger>(); Container.Register<IFileService, FileService>(); Container.Register<IPresetImportExport, PresetImportExport>(); Container.Register<IQueueImportExport, QueueImportExport>(); Container.Register<IProcesses, Processes>(); Container.Register<IProcessAutoPause, ProcessAutoPause>(); Container.Register<ISystemOperations, SystemOperations>(); Container.Register(() => new TrayService()); Container.Register(() => new ClipboardService()); Container.Register<OutputPathViewModel>(); Container.Register<PresetsViewModel>(); Container.Register<ProcessingViewModel>(); Container.Register<WindowManagerViewModel>(); }
/// <summary> /// Register the Live instance of the datasource with the SimpleIoC /// </summary> /// <param name="iocKernel">the instance of the SimpleIoC container</param> public static void RegisterDataSource(SimpleIoc iocKernel) { iocKernel.Register<IUnitOfWork, MusicCollection>(true); }
get { return ParseANID(SimpleIoc.Default.GetInstance<IUserExtendedPropertiesService>().AnonymousUserID); }
public void Shutdown() { try { this.tracer.Debug("Calling custom OnShutdown procedure"); this.OnShutdown(); } catch (Exception ex) { this.tracer.Debug("Custom OnShutdown procedure failed"); if (!this.HandleBootstrappingException(ex)) { throw; } } finally { applicationLifecycle = ApplicationLifecycle.Uninitialized; if (this.simpleIoc != null) { this.simpleIoc.Reset(); this.simpleIoc = null; } } }
/// <summary> /// Runs the startup procedure of the bootstrapper. /// </summary> /// <exception cref="BootstrappingException">An unknown exception occurred during the startup process.</exception> public void Startup() { this.tracer.Debug("Bootstrapper.Startup() called"); this.simpleIoc = SimpleIoc.Default; // The Service container is a service locator too. To be backwards compatible set the ServiceLocator property. ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); if (applicationLifecycle == ApplicationLifecycle.Uninitialized) { this.simpleIoc.Reset(); this.InternalConfigureDefaultTracerFactory(); this.InternalConfigureExceptionHandling(); this.InternalConfigureExtensions(); this.InternalConfigureContainer(); this.InternalOnStartup(); } else if (applicationLifecycle == ApplicationLifecycle.Sleep) { this.InternalOnResume(); } else if(applicationLifecycle == ApplicationLifecycle.Running) { this.tracer.Info($"ApplicationLifecycle is already in state {ApplicationLifecycle.Running}."); } }
/// <summary> /// Initializes a new instance of the ViewModelLocator class. /// </summary> public ViewModelLocator() { var ioc = new SimpleIoc(); ioc.Register<MainViewModel>(); ServiceLocator.SetLocatorProvider(() => ioc); }