使用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()
可以使用该方法。
答案 0 :(得分:2)
您可以创建自定义CultureInfo,保存您的格式。
另一个解决方案是在一些帮助方法中换行转换,该方法将DateTime.Parse用于日期,将TypeConverter用于其他类型。