public static object GetReportDefinitionLibraryMetadata(string path, Type xmlSerializedType) { object metadata; lock (cache) { if (cache.Keys.Contains(path) && !IsReportStale(path, cache[path].LastWriteTime)) { metadata = cache[path].Metadata; } else { if (cache.Keys.Contains(path)) { cache.Remove(path); } ReportDefinitionLibraryMetadataEntry newEntry = LoadMetadata(path, xmlSerializedType); cache.Add(path, newEntry); metadata = newEntry.Metadata; } } return(metadata); }
private static ReportDefinitionLibraryMetadataEntry LoadMetadata(string path, Type xmlSerializedType) { ReportDefinitionLibraryMetadataEntry newEntry = new ReportDefinitionLibraryMetadataEntry(); XmlSerializer serializer = new XmlSerializer(xmlSerializedType); using (Stream s = File.OpenRead(path)) { newEntry.Metadata = serializer.Deserialize(s); newEntry.LastWriteTime = File.GetLastWriteTime(path); } return(newEntry); }