public virtual Stream OpenFile(string path) { Func<Stream> factory; if (!Paths.TryGetValue(path, out factory)) { throw new FileNotFoundException(path + " not found."); } return factory(); }