@joebigelow / wix-1 / commits / f6366fce

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)