private void OnConfigurableFileChanged(ICacheItem item, bool dirty) { if (dirty) { var fileCacheItem = item as IFileCacheItem; if (fileCacheItem == null) { return; } IInstanceInfo instanceInfo = null; IConfigurableFileInfo configurableFileInfo = null; foreach (var objectName in ObjectMappings.ToArray().Where(x => string.Equals(x.Value.Path, fileCacheItem.Path)).Select(x => x.Key)) { RegisterInstances.TryRemove(objectName, out instanceInfo); ObjectMappings.TryRemove(objectName, out configurableFileInfo); } if (configurableFileInfo != null) { RegisterConfigurableFile(configurableFileInfo); } } }
public override object GetObject(string objectName) { IInstanceInfo instanceInfo = null; if (!RegisterInstances.TryGetValue(objectName, out instanceInfo)) { return(null); } return(instanceInfo.GetInstance()); }
public void RegisterInstance(IInstanceInfo instanceInfo) { if (!instanceInfo.Name.HasValue()) { // TODO: throw } if (ContainsInstance(instanceInfo.Name)) { return; } RegisterInstances.AddOrUpdate(instanceInfo.Name, instanceInfo, (a, b) => instanceInfo); }
public bool ContainsInstance(string objectName) { return(RegisterInstances.ContainsKey(objectName)); }