public T?CacheObjectIfCachingEnabledForKey <T>(ProjectId key, ICachedObjectOwner owner, T?instance) where T : class { lock (_gate) { if (owner.CachedObject == null && _activeCaches.TryGetValue(key, out var cache)) { owner.CachedObject = instance; cache.CreateOwnerEntry(owner); } return(instance); } }
internal void CreateOwnerEntry(ICachedObjectOwner owner) { _ownerObjects.Add(new WeakReference <ICachedObjectOwner>(owner)); }
T IProjectCacheHostService.CacheObjectIfCachingEnabledForKey <T>(ProjectId key, ICachedObjectOwner owner, T instance) => instance;