.NET框架中XPathResultType
枚举的定义给“String”赋予与“Navigator”相同的值(1)。当然那不可能是对的吗?是什么给了什么?
我正在实现一些自定义XPath函数,我正在尝试编写一个方法来根据每个参数的声明的XPathResultType来验证函数的参数。但是,我很难理解我应该如何迎合这种重叠......
#region Assembly System.Xml.dll, v4.0.30319
// C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\System.Xml.dll
#endregion
using System;
namespace System.Xml.XPath
{
// Summary:
// Specifies the return type of the XPath expression.
public enum XPathResultType
{
// Summary:
// A numeric value.
Number = 0,
//
// Summary:
// A System.String value.
String = 1,
//
// Summary:
// A tree fragment.
Navigator = 1,
//
// Summary:
// A System.Booleantrue or false value.
Boolean = 2,
//
// Summary:
// A node collection.
NodeSet = 3,
//
// Summary:
// Any of the XPath node types.
Any = 5,
//
// Summary:
// The expression does not evaluate to the correct XPath type.
Error = 6,
}
}
答案 0 :(得分:3)
Microsoft Connect上存在已解决的问题:https://connect.microsoft.com/VisualStudio/feedback/details/97578/both-xpathresulttype-string-and-xpathresulttype-navigator-are-1
微软的回答:
重叠的枚举值是一个已知问题。解决方法是 永远不要使用
XPathResultType.Navigator
值并始终使用XPathResultType.NodeSet
。