public static object ConvertToXPathType(object val, XPathResultType xt, TypeCode typeCode) {
switch(xt) {
case XPathResultType.String :
if (typeCode == TypeCode.String) {
return ToString(val);
} else {
return ToNavigator(val);
}
case XPathResultType.Number : return ToNumeric(val, typeCode);
case XPathResultType.Boolean : return ToBoolean(val);
case XPathResultType.NodeSet : return ToIterator(val);
// case XPathResultType.Navigator : return ToNavigator(val);
case XPathResultType.Any :
case XPathResultType.Error :
return val;
default :
Debug.Assert(false, "unexpected XPath type");
return val;
}
}
}