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)); |
