From 0185c2ea6e638dc7e1c5224739717ba2152bb510 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 23 Jun 2020 16:45:26 -0700 Subject: Move Windows Installer specific backend services to WindowsInstaller --- .../WixToolsetCoreServiceProviderExtensions.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs') diff --git a/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs b/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs index f3671332..15fbf679 100644 --- a/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs +++ b/src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs @@ -2,16 +2,33 @@ namespace WixToolset.Core.WindowsInstaller { + using System; + using System.Collections.Generic; + using WixToolset.Core.WindowsInstaller.ExtensibilityServices; using WixToolset.Extensibility.Services; public static class WixToolsetCoreServiceProviderExtensions { public static IWixToolsetCoreServiceProvider AddWindowsInstallerBackend(this IWixToolsetCoreServiceProvider coreProvider) { + AddServices(coreProvider); + var extensionManager = coreProvider.GetService(); extensionManager.Add(typeof(WindowsInstallerExtensionFactory).Assembly); return coreProvider; } + + private static void AddServices(IWixToolsetCoreServiceProvider coreProvider) + { + // Singletons. + coreProvider.AddService((provider, singletons) => AddSingleton(singletons, new WindowsInstallerBackendHelper())); + } + + private static T AddSingleton(Dictionary singletons, T service) where T : class + { + singletons.Add(typeof(T), service); + return service; + } } } -- cgit v1.2.3-55-g6feb