diff options
author | Bob Arnson <bob@joyofsetup.com> | 2018-07-09 17:32:15 -0400 |
---|---|---|
committer | Bob Arnson <bob@joyofsetup.com> | 2018-07-09 17:32:15 -0400 |
commit | f6366fcef77c6dba43be2cc6855d73bf343135bd (patch) | |
tree | d68e23152fbefb494d7c6cdefdbda7eae291a161 /src/WixToolset.Core | |
parent | 3b6ae0dc3d1af57f5da537d791bbe1dcc77040ca (diff) | |
download | wix-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.cs | 11 |
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) |