main
cs 38 lines 1.96 KB
Raw
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 namespace WixToolset.Core.WindowsInstaller
4 {
5 using WixToolset.Core.WindowsInstaller.ExtensibilityServices;
6 using WixToolset.Extensibility.Data;
7 using WixToolset.Extensibility.Services;
8
9 /// <summary>
10 /// Extensions methods for adding WindowsInstaller services.
11 /// </summary>
12 public static class WixToolsetCoreServiceProviderExtensions
13 {
14 /// <summary>
15 /// Adds WindowsInstaller services.
16 /// </summary>
17 /// <param name="coreProvider">Core service provider.</param>
18 /// <returns>The core service provider provided to this method.</returns>
19 public static IWixToolsetCoreServiceProvider AddWindowsInstallerBackend(this IWixToolsetCoreServiceProvider coreProvider)
20 {
21 AddServices(coreProvider);
22
23 var extensionManager = coreProvider.GetService<IExtensionManager>();
24 extensionManager.Add(typeof(WindowsInstallerExtensionFactory).Assembly);
25
26 return coreProvider;
27 }
28
29 private static void AddServices(IWixToolsetCoreServiceProvider coreProvider)
30 {
31 coreProvider.AddService<IWindowsInstallerDecompiler>((provider, singletons) => new WindowsInstallerDecompiler(provider));
32 coreProvider.AddService<IWindowsInstallerDecompilerHelper>((provider, singletons) => new WindowsInstallerDecompilerHelper(provider));
33 coreProvider.AddService<IWindowsInstallerDecompileContext>((provider, singletons) => new WindowsInstallerDecompileContext(provider));
34 coreProvider.AddService<IWindowsInstallerDecompileResult>((provider, singletons) => new WindowsInstallerDecompileResult());
35 coreProvider.AddService<IWindowsInstallerBackendHelper>((provider, singletons) => new WindowsInstallerBackendHelper(provider));
36 }
37 }
38 }