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 に答える