private InjectionMetadata FindAutowiringMetadata(Type objectType) { // Quick check on the concurrent map first, with minimal locking. InjectionMetadata metadata = null; if (_injectionMetadataCache.ContainsKey(objectType)) { metadata = _injectionMetadataCache[objectType]; } if (metadata == null) { lock (_injectionMetadataCache) { if (!_injectionMetadataCache.ContainsKey(objectType)) { metadata = BuildAutowiringMetadata(objectType); _injectionMetadataCache.Add(objectType, metadata); } } } return(metadata); }
public static bool NeedsRefresh(InjectionMetadata metadata, Type type) { return(metadata == null || metadata.targetType != type); }