public static MetricDict LoadMetrics(DirectoryInfo directory, string genId) { string filename = GetMetricsFileName(directory, genId); if (File.Exists(filename)) { MetricDict metricDict = new MetricDict(); JObject metrics; using (FileStream fs = new FileStream(filename, FileMode.Open)) using (StreamReader sr = new StreamReader(fs)) using (JsonTextReader jtr = new JsonTextReader(sr)) { metrics = JObject.Load(jtr); } //recover type dict but with id as index Dictionary <int, Type> typeDict = new Dictionary <int, Type>(); JObject typeDictJson = metrics["types"] as JObject; foreach (var kv in typeDictJson) { typeDict[int.Parse(kv.Key)] = Type.GetType(kv.Value.Value <string>()); } JArray data = metrics["data"] as JArray; foreach (JObject entry in data) { Type t = typeDict[entry["type"].Value <int>()]; AMetric metric = entry["metric"].ToObject(t) as AMetric; FileInfo file = new FileInfo(entry["file"].Value <string>()); metricDict[file] = metric; } return(metricDict); } return(null); }
public DupeFileCollection(AMetric metric) { this.metric = metric; }