public static T ParseValue(XPathNavigator navigator, TryParseEnumDelegate tryParse, bool ignoreCase) { T dummy; if (tryParse(navigator.Value, ignoreCase, out dummy) == false) { var lineInfo = (IXmlLineInfo)navigator; throw new FormatException( string.Format("could not parse '{0}' as {1} at line {2} position {3}", navigator.Value, typeof(T).Name, lineInfo.LineNumber, lineInfo.LinePosition)); } return(dummy); }
public static T ParseAttribute( XPathNavigator navigator, string name, TryParseEnumDelegate tryParse, bool ignoreCase, T defaultValue) { if (navigator.MoveToAttribute(name, "") == false) { return(defaultValue); } var dummy = ParseValue(navigator, tryParse, ignoreCase); navigator.MoveToParent(); return(dummy); }
public static T ParseAttribute( XPathNavigator navigator, string name, TryParseEnumDelegate tryParse, bool ignoreCase) { if (navigator.MoveToAttribute(name, "") == false) { var lineInfo = (IXmlLineInfo)navigator; throw new KeyNotFoundException( string.Format("could not find attribute '{0}' at line {1} position {2}", name, lineInfo.LineNumber, lineInfo.LinePosition)); } var dummy = ParseValue(navigator, tryParse, ignoreCase); navigator.MoveToParent(); return(dummy); }