aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/WixToolsetServiceProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/WixToolsetServiceProvider.cs')
-rw-r--r--src/WixToolset.Core/WixToolsetServiceProvider.cs23
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)