diff options
Diffstat (limited to 'src/WixToolset.Core/WixToolsetServiceProvider.cs')
-rw-r--r-- | src/WixToolset.Core/WixToolsetServiceProvider.cs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/WixToolset.Core/WixToolsetServiceProvider.cs b/src/WixToolset.Core/WixToolsetServiceProvider.cs index c073c32b..dd49e7ed 100644 --- a/src/WixToolset.Core/WixToolsetServiceProvider.cs +++ b/src/WixToolset.Core/WixToolsetServiceProvider.cs | |||
@@ -3,18 +3,30 @@ | |||
3 | namespace WixToolset.Core | 3 | namespace WixToolset.Core |
4 | { | 4 | { |
5 | using System; | 5 | using System; |
6 | using WixToolset.Data; | ||
6 | using WixToolset.Extensibility; | 7 | using WixToolset.Extensibility; |
7 | using WixToolset.Extensibility.Services; | 8 | using WixToolset.Extensibility.Services; |
8 | 9 | ||
9 | public class WixToolsetServiceProvider : IServiceProvider | 10 | public class WixToolsetServiceProvider : IServiceProvider |
10 | { | 11 | { |
11 | private ExtensionManager extensionManager; | 12 | private ExtensionManager extensionManager; |
13 | private TupleDefinitionCreator tupleDefinitionCreator; | ||
12 | 14 | ||
13 | public object GetService(Type serviceType) | 15 | public object GetService(Type serviceType) |
14 | { | 16 | { |
15 | if (serviceType == null) throw new ArgumentNullException(nameof(serviceType)); | 17 | if (serviceType == null) throw new ArgumentNullException(nameof(serviceType)); |
16 | 18 | ||
17 | // Transients. | 19 | // Transients. |
20 | if (serviceType == typeof(ICompileContext)) | ||
21 | { | ||
22 | return new CompileContext(this); | ||
23 | } | ||
24 | |||
25 | if (serviceType == typeof(ILinkContext)) | ||
26 | { | ||
27 | return new LinkContext(this); | ||
28 | } | ||
29 | |||
18 | if (serviceType == typeof(IBindContext)) | 30 | if (serviceType == typeof(IBindContext)) |
19 | { | 31 | { |
20 | return new BindContext(this); | 32 | return new BindContext(this); |
@@ -38,7 +50,12 @@ namespace WixToolset.Core | |||
38 | // Singletons. | 50 | // Singletons. |
39 | if (serviceType == typeof(IExtensionManager)) | 51 | if (serviceType == typeof(IExtensionManager)) |
40 | { | 52 | { |
41 | return extensionManager = extensionManager ?? new ExtensionManager(); | 53 | return this.extensionManager = this.extensionManager ?? new ExtensionManager(); |
54 | } | ||
55 | |||
56 | if (serviceType == typeof(ITupleDefinitionCreator)) | ||
57 | { | ||
58 | return this.tupleDefinitionCreator = this.tupleDefinitionCreator ?? new TupleDefinitionCreator(this); | ||
42 | } | 59 | } |
43 | 60 | ||
44 | throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType)); | 61 | throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType)); |