Пример #1
0
            public static T ParseAttribute(
                XPathNavigator navigator,
                string name,
                TryParseBasicDelegate tryParse,
                T defaultValue)
            {
                if (navigator.MoveToAttribute(name, "") == false)
                {
                    return(defaultValue);
                }

                var dummy = ParseValue(navigator, tryParse);

                navigator.MoveToParent();
                return(dummy);
            }
Пример #2
0
            public static T ParseValue(XPathNavigator navigator, TryParseBasicDelegate tryParse)
            {
                T dummy;

                if (tryParse(navigator.Value, 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);
            }
Пример #3
0
            public static T ParseAttribute(
                XPathNavigator navigator,
                string name,
                TryParseBasicDelegate tryParse)
            {
                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);

                navigator.MoveToParent();
                return(dummy);
            }