使用TypeConverter.ConvertFromString()解析自定义格式的字符串
本文关键字:自定义 格式 字符串 TypeConverter ConvertFromString 使用 | 更新日期: 2023-09-27 18:10:46
使用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()
使用。
您可以创建一个自定义的CultureInfo,保留您的格式。
另一个解决方案是将转换封装在使用DateTime的helper方法中。解析日期和TypeConverter的其他类型