diff options
Diffstat (limited to 'src/WixToolset.Core/WixToolsetServiceProvider.cs')
| -rw-r--r-- | src/WixToolset.Core/WixToolsetServiceProvider.cs | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/src/WixToolset.Core/WixToolsetServiceProvider.cs b/src/WixToolset.Core/WixToolsetServiceProvider.cs index 87a6f76b..5d700ba0 100644 --- a/src/WixToolset.Core/WixToolsetServiceProvider.cs +++ b/src/WixToolset.Core/WixToolsetServiceProvider.cs | |||
| @@ -73,14 +73,14 @@ namespace WixToolset.Core | |||
| 73 | 73 | ||
| 74 | private Dictionary<Type, object> Singletons { get; } | 74 | private Dictionary<Type, object> Singletons { get; } |
| 75 | 75 | ||
| 76 | public bool TryGetService(Type serviceType, out object service) | 76 | public object GetService(Type serviceType) |
| 77 | { | 77 | { |
| 78 | if (serviceType == null) | 78 | if (serviceType == null) |
| 79 | { | 79 | { |
| 80 | throw new ArgumentNullException(nameof(serviceType)); | 80 | throw new ArgumentNullException(nameof(serviceType)); |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | if (!this.Singletons.TryGetValue(serviceType, out service)) | 83 | if (!this.Singletons.TryGetValue(serviceType, out var service)) |
| 84 | { | 84 | { |
| 85 | if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction)) | 85 | if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction)) |
| 86 | { | 86 | { |
| @@ -95,24 +95,7 @@ namespace WixToolset.Core | |||
| 95 | } | 95 | } |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | return service != null; | 98 | return service; |
| 99 | } | ||
| 100 | |||
| 101 | public bool TryGetService<T>(out T service) where T : class | ||
| 102 | { | ||
| 103 | var success = this.TryGetService(typeof(T), out var untypedService); | ||
| 104 | service = (T)untypedService; | ||
| 105 | return success; | ||
| 106 | } | ||
| 107 | |||
| 108 | public object GetService(Type serviceType) | ||
| 109 | { | ||
| 110 | return this.TryGetService(serviceType, out var service) ? service : throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType)); | ||
| 111 | } | ||
| 112 | |||
| 113 | public T GetService<T>() where T : class | ||
| 114 | { | ||
| 115 | return (T)this.GetService(typeof(T)); | ||
| 116 | } | 99 | } |
| 117 | 100 | ||
| 118 | public void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction) | 101 | public void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction) |
