コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }