11

使用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().

4

1 回答 1

4

您可以创建一个自定义 CultureInfo ,保存您的格式。

另一种解决方案是在一些辅助方法中包装转换,该方法将 DateTime.Parse 用于日期,将 TypeConverter 用于其他类型。

于 2013-04-24T13:41:40.827 回答