Add `WixToolsetServiceProvider.TryGetService`.
Bob Arnson committed
Jul 9, 2018 at 17:32 UTC
f6366fcef77c6dba43be2cc6855d73bf343135bd
1 file changed
+8
-3
src/WixToolset.Core/WixToolsetServiceProvider.cs
+8
-3
@@ -43,11 +43,11 @@ namespace WixToolset.Core
43
44
private Dictionary<Type, object> Singletons { get; }
45
46
- public object GetService(Type serviceType)
46
+ public bool TryGetService(Type serviceType, out object service)
47
{
48
if (serviceType == null) throw new ArgumentNullException(nameof(serviceType));
49
50
- if (!this.Singletons.TryGetValue(serviceType, out var service))
50
+ if (!this.Singletons.TryGetValue(serviceType, out service))
51
{
52
if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction))
53
{
@@ -62,7 +62,12 @@ namespace WixToolset.Core
62
}
63
}
64
65
- return service ?? throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType));
65
+ return service != null;
66
+ }
67
+
68
+ public object GetService(Type serviceType)
69
+ {
70
+ return this.TryGetService(serviceType, out var service) ? service : throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType));
71
}
72
73
public void AddService(Type serviceType, Func<IServiceProvider, Dictionary<Type, object>, object> creationFunction)