【发布时间】:2013-04-18 02:01:58
【问题描述】:
使用TypeConverter.ConvertFromString(),我需要在从字符串解析数据时提供自定义格式(例如,使用DateTime:"ddMMyyyy" 或"MMMM dd, yyyy")。
TypeConverter.ConvertFromString() 有以下重载:
public object ConvertFromString(ITypeDescriptorContext context,
CultureInfo culture,
string text);
我查看了MSDN 关于ITypeDescriptorContext。
ITypeDescriptorContext 接口提供上下文信息 关于一个组件。 ITypeDescriptorContext 通常用于设计 是时候提供有关设计时容器的信息了。这 接口常用于类型转换。
这听起来像是我需要使用的,但我在任何地方都找不到任何示例。
我正在使用以下通用方法:
public T ParseValue<T>(string value)
{
return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(value);
}
调用代码示例:
DateTime date = ParseValue<DateTime>("02062001");
decimal amount = ParseValue<decimal>("1.3423");
我希望能够将某种通用格式信息解析到这个ParseValue() 方法中,ConvertFromString() 可以使用它。
【问题讨论】:
-
@Bob- 因为有时我会将字符串解析为其他数据类型(不仅仅是
DateTime)。我需要使用TypeDescriptor,这样我才能在运行时获得适当的解析机制。 -
我很困惑,您想将表示为字符串的 DateTime 转换为其他数据类型?那么喜欢int?
-
@Bob- 我用更多代码示例编辑了我的帖子。谢谢
-
啊,我明白了,您正在寻找一个通用字符串转换器,将其更改为适当的数据类型,应该真正改变您的标题以反映这一点。 :)
-
也许this answer 可能会有所帮助。
标签: c# .net parsing datetime type-conversion