diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs index f3b919212255f7..f9e7e42036ba54 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/src/ServiceLookup/CallSiteFactory.cs @@ -70,10 +70,9 @@ private void Populate() } } - internal ServiceCallSite GetCallSite(Type serviceType, CallSiteChain callSiteChain) - { - return _callSiteCache.GetOrAdd(serviceType, type => CreateCallSite(type, callSiteChain)); - } + internal ServiceCallSite GetCallSite(Type serviceType, CallSiteChain callSiteChain) => + _callSiteCache.TryGetValue(serviceType, out ServiceCallSite site) ? site : + CreateCallSite(serviceType, callSiteChain); internal ServiceCallSite GetCallSite(ServiceDescriptor serviceDescriptor, CallSiteChain callSiteChain) {