我正在寻找相当于下面代码的东西,但是对于任何值类型,无需为每种数据类型编码switch语句。 下面的代码不会编译,因为XmlConvert.ToString()没有接受和对象的重载。如何将使用XmlConvert转换为字符串的值类型转换为字符串?
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();
}
}
我非常欣赏这张照片,但是我已经通过了XmlSerializer,DataContractSerializer地狱。我甚至和XamlWriter一起玩过。我的值被装箱,因为我通过处理许多数据类型的接口访问它们。 – 2009-01-26 01:59:37