【发布时间】:2019-05-22 01:37:57
【问题描述】:
我从 StackOverlow 问题 here 复制此代码,但我收到反馈说它不适用于具有特定日期时间格式的计算机。你知道如何优雅地修复它吗?
问题是格式化方法是泛型的,object.ToString 没有 CultureInfo 参数的重载。
private string UrlEncodeObject(object o)
{
var properties = from p in o.GetType().GetProperties()
where p.GetValue(o, null) != null
select p.Name + "=" + System.Net.WebUtility.UrlEncode(p.GetValue(o, null).ToString());
string queryString = String.Join("&", properties.ToArray());
return queryString;
}
我预计特定的十进制符号等可能会有类似的问题。
【问题讨论】:
-
您能否检查
p的类型,如果是DateTime(或DateTime?可能),然后将其转换为在该属性上使用.ToString()的重载? -
为什么不将泛型类型传递给函数并将对象转换为它?
标签: c# cultureinfo