aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core
diff options
context:
space:
mode:
authorBob Arnson <bob@joyofsetup.com>2018-07-09 17:32:15 -0400
committerBob Arnson <bob@joyofsetup.com>2018-07-09 17:32:15 -0400
commitf6366fcef77c6dba43be2cc6855d73bf343135bd (patch)
treed68e23152fbefb494d7c6cdefdbda7eae291a161 /src/WixToolset.Core
parent3b6ae0dc3d1af57f5da537d791bbe1dcc77040ca (diff)
downloadwix-f6366fcef77c6dba43be2cc6855d73bf343135bd.tar.gz
wix-f6366fcef77c6dba43be2cc6855d73bf343135bd.tar.bz2
wix-f6366fcef77c6dba43be2cc6855d73bf343135bd.zip
Add `WixToolsetServiceProvider.TryGetService`.
Diffstat (limited to 'src/WixToolset.Core')
-rw-r--r--src/WixToolset.Core/WixToolsetServiceProvider.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/WixToolset.Core/WixToolsetServiceProvider.cs b/src/WixToolset.Core/WixToolsetServiceProvider.cs
index 0c40c56d..20c6c309 100644
--- a/src/WixToolset.Core/WixToolsetServiceProvider.cs
+++ b/src/WixToolset.Core/WixToolsetServiceProvider.cs
@@ -43,11 +43,11 @@ namespace WixToolset.Core
43 43
44 private Dictionary<Type, object> Singletons { get; } 44 private Dictionary<Type, object> Singletons { get; }
45 45
46 public object GetService(Type serviceType) 46 public bool TryGetService(Type serviceType, out object service)
47 { 47 {
48 if (serviceType == null) throw new ArgumentNullException(nameof(serviceType)); 48 if (serviceType == null) throw new ArgumentNullException(nameof(serviceType));
49 49
50 if (!this.Singletons.TryGetValue(serviceType, out var service)) 50 if (!this.Singletons.TryGetValue(serviceType, out service))
51 { 51 {
52 if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction)) 52 if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction))
53 { 53 {
@@ -62,7 +62,12 @@ namespace WixToolset.Core
62 } 62 }
63 } 63 }
64 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));
66 } 71 }
67 72
68 public void AddService(Type serviceType, Func<IServiceProvider, Dictionary<Type, object>, object> creationFunction) 73 public void AddService(Type serviceType, Func<IServiceProvider, Dictionary<Type, object>, object> creationFunction)