public object Get(object owner, string key) { key = ValidateKey(key); ResourceReferenceInfo resourceInfo = null; if (_assets.TryGetValue(key, out resourceInfo)) { if (!resourceInfo.ContainsOwner(owner)) { resourceInfo.AddOwner(owner); } return(resourceInfo.Resource); } throw new ResourceMemoryCacheException(string.Format("Missing resource in cach. Resource name: {0}", key)); }
public void Add(object owner, string key, object resource) { key = ValidateKey(key); ResourceReferenceInfo resourceReference; if (_assets.TryGetValue(key, out resourceReference)) { if (!resourceReference.ContainsOwner(owner)) { resourceReference.AddOwner(owner); } } else { resourceReference = new ResourceReferenceInfo(resource); resourceReference.AddOwner(owner); _assets.Add(key, resourceReference); } }