/// <summary> /// Read mapfile from disk /// </summary> public MapFile(string path) { XDocument map; using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { map = CompressedXml.Load(fileStream); } foreach (var element in map.Root.Elements("scope")) { scopes.Add(new ScopeEntry(element)); } foreach (var type in map.Root.Elements("type")) { Add(new TypeEntry(type)); } foreach (var element in map.Root.Elements("document")) { var doc = new Document(element); documents.Add(doc.Path, doc); } }
/// <summary> /// Create from a reader. /// </summary> public FrameworkTypeMap(Stream stream) { var doc = CompressedXml.Load(stream); foreach (var element in doc.Root.Elements("type")) { var entry = new TypeEntry(element); typeMap[entry.ClassName] = entry; } }
/// <summary> /// Save to the given path. /// </summary> public void Save(string path) { var folder = Path.GetDirectoryName(path); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } // Create xml var document = ToXml(); // Save to disk using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write)) { CompressedXml.WriteTo(document, fileStream, Encoding.UTF8); } }
/// <summary> /// Read mapfile from disk /// </summary> public MapFile(string path) { XDocument map; using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { map = CompressedXml.Load(fileStream); } typesByDexName = new Dictionary <string, TypeEntry>(); foreach (var type in map.Root.Elements("type")) { Add(new TypeEntry(type)); } foreach (var element in map.Root.Elements("document")) { var doc = new Document(element); documents.Add(doc.Path.ToLowerInvariant(), doc); } }