public static string XmlEncode(object value) {
switch (Type.GetTypeCode(value.GetType())) {
case TypeCode.Boolean:
case TypeCode.Char:
case TypeCode.String:
return value.ToString();
case TypeCode.Byte:
case TypeCode.Decimal:
case TypeCode.Double:
case TypeCode.Int16:
case TypeCode.Int32:
case TypeCode.Int64:
case TypeCode.SByte:
case TypeCode.Single:
case TypeCode.UInt16:
case TypeCode.UInt32:
case TypeCode.UInt64:
return Convert.ToDecimal(value).ToString(CultureInfo.InvariantCulture);
case TypeCode.DateTime:
return XmlConvert.ToString((DateTime)value, XmlDateTimeSerializationMode.Utc);
default:
throw new NotSupportedException("Could not encode member");
}
}