public void Append(string key, string path, string fileFormat, Type configurationType, CacheItemDirtyChangedHandlerDelegate dirtyChanged = null) { // build a CacheItem and add to container ICacheItem item = null; if (fileFormat.EqualsIgnoreCase("xml")) { item = new XmlFileCacheItem(key, path, configurationType); } else if (fileFormat.EqualsIgnoreCase("json")) { item = new JsonFileCacheItem(key, path, configurationType); } else if (fileFormat.EqualsIgnoreCase("text")) { item = new TextFileCacheItem(key, path); } else { // TODO: throw } if (dirtyChanged != null) { item.DirtyChanged += dirtyChanged; } Container.Add(item); // start file monitor _FileSystemMonitor.Add(this, path, OnFileChanged, null, null, OnFileRenamed); }
public void Remove(string key, CacheItemDirtyChangedHandlerDelegate dirtyChanged = null) { var item = Container.Get(key) as IFileCacheItem; if (item == null) { // TODO: throw } if (dirtyChanged != null) { item.DirtyChanged -= dirtyChanged; } // stop file monitor _FileSystemMonitor.Remove(this, item.Path, OnFileChanged, null, null, OnFileRenamed); // remove CacheItem from container Container.Remove(key); }