我正在寻找与以下代码等效的内容,但对于任何值类型都不需要编写一个switch语句来完成。
由于XmlConvert.ToString()没有接受对象的重载,因此下面的代码无法编译。
换句话说,除了这种方法,还有更好的方法吗?
int intValue = 10;
object boxedValue = (object)intValue;
string xmlValue = XmlConvert.ToString(boxedValue);
换句话说,除了这种方法,还有更好的方法吗?
public static string ToXmlString(Type type, object value) {
switch(Type.GetTypeCode(type)) {
case TypeCode.Int32:
return XmlConvert.ToString((int) value);
case TypeCode.DateTime:
return XmlConvert.ToString((DateTime) value, XmlDateTimeSerializationMode.Unspecified);
case TypeCode.Boolean:
return XmlConvert.ToString((bool) value);
// TODO: Add case for all other value types!
default:
return value.ToString();
}
}