From f6366fcef77c6dba43be2cc6855d73bf343135bd Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 9 Jul 2018 17:32:15 -0400 Subject: Add `WixToolsetServiceProvider.TryGetService`. --- src/WixToolset.Core/WixToolsetServiceProvider.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/WixToolset.Core') 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 private Dictionary Singletons { get; } - public object GetService(Type serviceType) + public bool TryGetService(Type serviceType, out object service) { if (serviceType == null) throw new ArgumentNullException(nameof(serviceType)); - if (!this.Singletons.TryGetValue(serviceType, out var service)) + if (!this.Singletons.TryGetValue(serviceType, out service)) { if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction)) { @@ -62,7 +62,12 @@ namespace WixToolset.Core } } - return service ?? throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType)); + return service != null; + } + + public object GetService(Type serviceType) + { + return this.TryGetService(serviceType, out var service) ? service : throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType)); } public void AddService(Type serviceType, Func, object> creationFunction) -- cgit v1.2.3-55-g6feb