public T Read <T>(string key) { if (cache.ContainsKey(key)) { return(cache[key]); } var fileName = GetFileName(key); if (!fileSystemHandler.Contains(fileName)) { throw new Exception($"Fail to find file with name {fileName}. Full path {fileSystemHandler.GetFullPath(fileName)}."); } return(Find <T>(key)); }