aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-06 13:24:14 -0700
committerRob Mensching <rob@firegiant.com>2020-06-08 16:34:16 -0700
commit59e358df2f15d478e5bd9f48e3e0824d8a59d7f4 (patch)
treefb6f0ea9be1021f6dc585e52189dde6d2d5f4f5e /src
parent5a19fb2cef32b214834aa1ca5627324f2da0e5b8 (diff)
downloadwix-59e358df2f15d478e5bd9f48e3e0824d8a59d7f4.tar.gz
wix-59e358df2f15d478e5bd9f48e3e0824d8a59d7f4.tar.bz2
wix-59e358df2f15d478e5bd9f48e3e0824d8a59d7f4.zip
Add xmldoc
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Extensibility/Services/IExtensionManager.cs19
-rw-r--r--src/WixToolset.Extensibility/Services/IWixToolsetServiceProvider.cs23
-rw-r--r--src/WixToolset.Extensibility/Services/IWixtoolsetCoreServiceProvider.cs22
3 files changed, 55 insertions, 9 deletions
diff --git a/src/WixToolset.Extensibility/Services/IExtensionManager.cs b/src/WixToolset.Extensibility/Services/IExtensionManager.cs
index 19b41e4f..a8087941 100644
--- a/src/WixToolset.Extensibility/Services/IExtensionManager.cs
+++ b/src/WixToolset.Extensibility/Services/IExtensionManager.cs
@@ -5,6 +5,9 @@ namespace WixToolset.Extensibility.Services
5 using System.Collections.Generic; 5 using System.Collections.Generic;
6 using System.Reflection; 6 using System.Reflection;
7 7
8 /// <summary>
9 /// Loads extensions and uses the extensions' factories to provide services.
10 /// </summary>
8 public interface IExtensionManager 11 public interface IExtensionManager
9 { 12 {
10 /// <summary> 13 /// <summary>
@@ -14,20 +17,20 @@ namespace WixToolset.Extensibility.Services
14 void Add(Assembly extensionAssembly); 17 void Add(Assembly extensionAssembly);
15 18
16 /// <summary> 19 /// <summary>
17 /// Loads an extension assembly from a type description string. 20 /// Loads an extension assembly from an extension reference string.
18 /// </summary> 21 /// </summary>
19 /// <param name="extension">The assembly type description string.</param> 22 /// <param name="extensionReference">Reference to the extension.</param>
20 /// <returns>The loaded assembly. This assembly can be ignored since the extension manager maintains the list of loaded assemblies internally.</returns> 23 /// <returns>The loaded assembly. This assembly can be ignored since the extension manager maintains the list of loaded assemblies internally.</returns>
21 /// <remarks> 24 /// <remarks>
22 /// <paramref name="extension"/> can be in several different forms: 25 /// <paramref name="extensionReference"/> can be in several different forms:
23 /// <list type="number"> 26 /// <list type="number">
24 /// <item><term>AssemblyName (MyAssembly, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b17a5c561934e089)</term></item> 27 /// <item><term>Full path to an extension file (C:\MyExtensions\MyExtension.Example.wixext.dll)</term></item>
25 /// <item><term>Absolute path to an assembly (C:\MyExtensions\ExtensionAssembly.dll)</term></item> 28 /// <item><term>Reference to latest version of an extension in the cache (MyExtension.Example.wixext)</term></item>
26 /// <item><term>Filename of an assembly in the application directory (ExtensionAssembly.dll)</term></item> 29 /// <item><term>Versioned reference to specific extension in the cache (MyExtension.Example.wixext/1.0.2)</term></item>
27 /// <item><term>Relative path to an assembly (..\..\MyExtensions\ExtensionAssembly.dll)</term></item> 30 /// <item><term>Relative path to an extension file (..\..\MyExtensions\MyExtension.Example.wixext.dll)</term></item>
28 /// </list> 31 /// </list>
29 /// </remarks> 32 /// </remarks>
30 void Load(string extensionPath); 33 void Load(string extensionReference);
31 34
32 /// <summary> 35 /// <summary>
33 /// Gets extensions of specified type from factories loaded into the extension manager. 36 /// Gets extensions of specified type from factories loaded into the extension manager.
diff --git a/src/WixToolset.Extensibility/Services/IWixToolsetServiceProvider.cs b/src/WixToolset.Extensibility/Services/IWixToolsetServiceProvider.cs
index c9ef36e1..0315f7ed 100644
--- a/src/WixToolset.Extensibility/Services/IWixToolsetServiceProvider.cs
+++ b/src/WixToolset.Extensibility/Services/IWixToolsetServiceProvider.cs
@@ -4,10 +4,31 @@ namespace WixToolset.Extensibility.Services
4{ 4{
5 using System; 5 using System;
6 6
7 /// <summary>
8 /// Service provider.
9 /// </summary>
7 public interface IWixToolsetServiceProvider : IServiceProvider 10 public interface IWixToolsetServiceProvider : IServiceProvider
8 { 11 {
12 /// <summary>
13 /// Gets a service from the service provider.
14 /// </summary>
15 /// <typeparam name="T">Type of service to get.</typeparam>
16 T GetService<T>() where T : class;
17
18 /// <summary>
19 /// Gets a service from the service provider.
20 /// </summary>
21 /// <param name="serviceType">Type of service to get.</param>
22 /// <param name="service">Retrieved service.</param>
23 /// <returns>True if the service was found, otherwise false</returns>
9 bool TryGetService(Type serviceType, out object service); 24 bool TryGetService(Type serviceType, out object service);
25
26 /// <summary>
27 /// Gets a service from the service provider.
28 /// </summary>
29 /// <typeparam name="T">Type of service to get.</typeparam>
30 /// <param name="service">Retrieved service.</param>
31 /// <returns>True if the service was found, otherwise false</returns>
10 bool TryGetService<T>(out T service) where T : class; 32 bool TryGetService<T>(out T service) where T : class;
11 T GetService<T>() where T : class;
12 } 33 }
13} 34}
diff --git a/src/WixToolset.Extensibility/Services/IWixtoolsetCoreServiceProvider.cs b/src/WixToolset.Extensibility/Services/IWixtoolsetCoreServiceProvider.cs
index cda725f7..3c80ddef 100644
--- a/src/WixToolset.Extensibility/Services/IWixtoolsetCoreServiceProvider.cs
+++ b/src/WixToolset.Extensibility/Services/IWixtoolsetCoreServiceProvider.cs
@@ -5,9 +5,31 @@ namespace WixToolset.Extensibility.Services
5 using System; 5 using System;
6 using System.Collections.Generic; 6 using System.Collections.Generic;
7 7
8 /// <summary>
9 /// The core of the service provider used to add services to the service provider.
10 /// </summary>
8 public interface IWixToolsetCoreServiceProvider : IWixToolsetServiceProvider 11 public interface IWixToolsetCoreServiceProvider : IWixToolsetServiceProvider
9 { 12 {
13 /// <summary>
14 /// Adds a service to the service locator.
15 /// </summary>
16 /// <param name="serviceType">Type of the service to add.</param>
17 /// <param name="creationFunction">
18 /// A function that creates the service. The create function is provided the service provider
19 /// itself to resolve additional services and a type dictionary that stores singleton services
20 /// the creation function can add its service to.
21 /// </param>
10 void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction); 22 void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction);
23
24 /// <summary>
25 /// Adds a service to the service locator.
26 /// </summary>
27 /// <param name="serviceType">Type of the service to add.</param>
28 /// <param name="creationFunction">
29 /// A function that creates the service. The create function is provided the service provider
30 /// itself to resolve additional services and a type dictionary that stores singleton services
31 /// the creation function can add its service to.
32 /// </param>
11 void AddService<T>(Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, T> creationFunction) where T : class; 33 void AddService<T>(Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, T> creationFunction) where T : class;
12 } 34 }
13} 35}