public void LoadFile(Stream inputStream, ConfigParts configParts) { if (null == inputStream) { throw new ArgumentNullException(nameof(inputStream)); } using (XmlReader reader = XmlReader.Create(inputStream)) { while (reader.Read()) { if (reader.IsStartElement()) { if (reader.Name == "settings" && ((configParts & ConfigParts.Settings) == ConfigParts.Settings)) { ChordiousSettings.Read(reader.ReadSubtree()); } else if (reader.Name == "styles" && ((configParts & ConfigParts.Styles) == ConfigParts.Styles)) { DiagramStyle.Read(reader.ReadSubtree()); } else if (reader.Name == "instruments" && ((configParts & ConfigParts.Instruments) == ConfigParts.Instruments)) { Instruments.Read(reader.ReadSubtree()); } else if (reader.Name == "qualities" && ((configParts & ConfigParts.Qualities) == ConfigParts.Qualities)) { ChordQualities.Read(reader.ReadSubtree()); } else if (reader.Name == "scales" && ((configParts & ConfigParts.Scales) == ConfigParts.Scales)) { Scales.Read(reader.ReadSubtree()); } else if (reader.Name == "library" && ((configParts & ConfigParts.Library) == ConfigParts.Library)) { DiagramLibrary.Read(reader.ReadSubtree()); } } } } }