private static void SaveUsableFromList <T>(XContainer xRoot, string elementName, UsableFromList <T> item) where T : struct, IConvertible { if (!item.Use) { return; } var xElement = new XElement(elementName); xRoot.Add(xElement); xElement.Add(new XElement(UseNode, item.Use)); xElement.Add(new XElement(SelectedNode, item.Selected)); }
private static void LoadUsableFromList <T>(XContainer xParent, string entryName, UsableFromList <T> item) where T : struct, IConvertible { var xFoundElement = xParent.Element(entryName); if (xFoundElement == null) { return; } if (!LoadBoolean(xFoundElement, UseNode, b => item.Use = b)) { return; } if (!Load(xFoundElement, SelectedNode, out T result)) { return; } item.Selected = result; }