public OptionsList(XmlReader reader) { Options = new List<Option>(); reader.ReadStartElement("options"); while (reader.IsStartElement("option")) { var option = new Option { Probability = double.Parse(reader.GetAttribute("probability") ?? "1", CultureInfo.InvariantCulture) }; reader.Read(); // <option> option.Definition = new PackDefinition(reader); reader.ReadEndElement(); // </option> Options.Add(option); } reader.ReadEndElement(); // </random> }
internal OptionsList DeserializeOptions(XElement element) { var ret = new OptionsList(); foreach (var op in element.Elements("option")) { var option = new Option(); var probAtt = op.Attributes("probability").FirstOrDefault(); option.Probability = double.Parse(probAtt != null ? probAtt.Value : "1", CultureInfo.InvariantCulture); option.Definition = DeserializePack(op.Elements()); ret.Options.Add(option); } return ret; }