我正在尋找相當於下面代碼的東西,但是對於任何值類型,無需爲每種數據類型編碼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