我正在为XPathNavigator支持的每种类型使用ValueAs方法。
public string GetFromNodeAsString(string xpathOfNode)
{
XPathNavigator nodeNav = ipFormNav.SelectSingleNode(xpathOfNode, nsManager);
return nodeNav.Value;
}
public int GetFromNodeAsInt(string xpathOfNode)
{
XPathNavigator nodeNav = ipFormNav.SelectSingleNode(xpathOfNode, nsManager);
return nodeNav.ValueAsInt;
}
public DateTime GetFromNodeAsDateTime(string xpathOfNode)
{
XPathNavigator nodeNav = ipFormNav.SelectSingleNode(xpathOfNode, nsManager);
return nodeNav.ValueAsDateTime;
}
变化的两件事是返回类型和返回的内容。
结合这些方法的最佳方法是什么?有没有更好的办法?我已经尝试过使用动态返回类型并传递相应的数据类型,但是并没有结合在一起。
最佳答案
大概是这样吗?
public T GetFromNode<T>(string xpathOfNode)
{
XPathNavigator nodeNav = ipFormNav.SelectSingleNode(xpathOfNode, nsManager);
return (T)nodeNav.ValueAs(typeof(T));
}