TypeConverter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
値の型を他の型に変換し、標準値とサブプロパティにアクセスするための統一的な方法を提供します。
public ref class TypeConverter
public class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
Public Class TypeConverter
- 継承
-
TypeConverter
- 派生
- 属性
例
次のコード例は、型コンバーターのインスタンスを作成し、それをクラスにバインドする方法を示しています。 コンバーター を実装するクラスは、 MyClassConverter
クラスから継承する TypeConverter 必要があります。
public:
[TypeConverter(Sample::MyClassConverter::typeid)]
ref class MyClass
{
// Insert code here.
};
[TypeConverter(typeof(MyClassConverter))]
public class MyClass {
// Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class Class1
' Insert code here.
End Class
列挙体を持つプロパティがある場合は、 プロパティを設定する前に列挙値が有効かどうかを確認します。 次のコード例では、 という MyPropertyEnum
列挙体が宣言されている必要があります。
public:
property MyPropertyEnum MyProperty
{
void set( MyPropertyEnum value )
{
// Checks to see if the value passed is valid.
if ( !TypeDescriptor::GetConverter( MyPropertyEnum::typeid )->IsValid( value ) )
{
throw gcnew ArgumentException;
}
// The value is valid. Insert code to set the property.
}
}
public MyPropertyEnum MyProperty {
set {
// Checks to see if the value passed is valid.
if (!TypeDescriptor.GetConverter(typeof(MyPropertyEnum)).IsValid(value)) {
throw new ArgumentException();
}
// The value is valid. Insert code to set the property.
}
}
Public WriteOnly Property MyProperty() As MyPropertyEnum
Set
' Checks to see if the value passed is valid.
If Not TypeDescriptor.GetConverter(GetType(MyPropertyEnum)).IsValid(value) Then
Throw New ArgumentException()
End If
' The value is valid. Insert code to set the property.
End Set
End Property
もう 1 つの一般的な型コンバーターの使用法は、オブジェクトを文字列に変換することです。 次のコード例では、 変数 c
に格納されている のColor名前を出力します。
Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.Red;
Console.WriteLine(TypeDescriptor.GetConverter(typeof(Color)).ConvertToString(c));
Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
次のコード例に示すように、型コンバーターを使用してその名前から値を変換することもできます。
Color c = (Color)(TypeDescriptor::GetConverter( Color::typeid )->ConvertFromString( "Red" ));
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
Dim c As Color = CType(TypeDescriptor.GetConverter(GetType(Color)).ConvertFromString("Red"), Color)
次のコード例では、型コンバーターを使用して、オブジェクトがサポートする標準値のセットを出力できます。
for each ( Color c in TypeDescriptor::GetConverter( Color::typeid )->GetStandardValues() )
{
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
}
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
}
Dim c As Color
For Each c In TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues()
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
Next c
注釈
コンバーターの最も一般的な種類は、テキスト表現との間で変換するものです。 クラスの型コンバーターは、TypeConverterAttribute を使用してクラスにバインドされます。 この属性がオーバーライドされない限り、このクラスから継承されるすべてのクラスにより、基本クラスと同じ型コンバーターが使用されます。
注意
一般的な型システムの場合は、型コンバーターに直接アクセスしないでください。 代わりに、 を使用 TypeDescriptorして適切なコンバーターにアクセスします。 詳細については、提供されているコード例を参照してください。
ただし、XAML を使用する場合、XAML プロセッサは を経由するのではなく、 を TypeConverterAttribute 直接検索します TypeDescriptor。 コードからインスタンスが必要な TypeDescriptor 場合や、WPF リソースで共有インスタンスを作成する場合は、参照 TypeDescriptor や他のリフレクションや型システムのサポートなしで直接構築できます。
から TypeConverter 派生したクラスは、多くの場合、XAML プロセッサがマークアップ (本質的に文字列) から属性または初期化テキスト値を変換し、実行時表現用のオブジェクトを生成する方法の一部として参照されます。 XAML の型変換動作をサポートするカスタム型作成者は、通常、 TypeConverter 文字列からの独自の一意 ConvertFrom
の動作をサポートするクラスを実装します。 この動作により、XAML 属性値として提供される文字列からの型変換が可能になり、解析されたオブジェクト グラフでオブジェクトを生成できるように、文字列からオブジェクトを作成するために必要なサポートが XAML プロセッサに提供されます。 カスタム型またはカスタム型のメンバーは、カスタム実装を参照TypeConverterする TypeConverterAttribute 属性を使用して、定義に適用することによって示されます。 詳細については、「 XAML の型コンバーターの概要」を参照してください。
注意 (継承者)
TypeConverterを継承して、独自の変換要件を実装します。 このクラスから継承する場合は、次のメソッドをオーバーライドできます。
カスタム型変換をサポートするには、および ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) の各メソッドをオーバーライドConvertFrom(ITypeDescriptorContext, CultureInfo, Object)CanConvertFrom(ITypeDescriptorContext, Type)CanConvertTo(ITypeDescriptorContext, Type)します。
オブジェクトを再作成して値を変更する必要がある型を変換するには、 メソッドと GetCreateInstanceSupported(ITypeDescriptorContext) メソッドをCreateInstance(ITypeDescriptorContext, IDictionary)オーバーライドします。
プロパティをサポートする型を変換するには、 メソッドと GetPropertiesSupported(ITypeDescriptorContext) メソッドをGetProperties(ITypeDescriptorContext, Object, Attribute[])オーバーライドします。 変換するクラスにプロパティがないため、プロパティを実装する必要がある場合は、 クラスを TypeConverter.SimplePropertyDescriptor プロパティ記述子を実装するためのベースとして使用できます。 からTypeConverter.SimplePropertyDescriptor継承する場合は、 メソッドと SetValue(Object, Object) メソッドをGetValue(Object)オーバーライドする必要があります。
標準値をサポートする型を変換するには、および IsValid(ITypeDescriptorContext, Object) の各メソッドをオーバーライド GetStandardValuesSupported(ITypeDescriptorContext)GetStandardValues(ITypeDescriptorContext)GetStandardValuesExclusive(ITypeDescriptorContext)します。
注: 派生型は または private
としてinternal
マークされている場合がありますが、 クラスを使用して型のインスタンスをTypeDescriptor作成できます。 呼び出し元が信頼されていると仮定して、安全でないコードを記述しないでください。 代わりに、呼び出し元が部分信頼で型のインスタンスを作成する可能性があるとします。
一般的な (XAML 以外の) 目的での型コンバーターの詳細については、「 方法: 型コンバーター または 一般化された型変換を実装する」を参照してください。
コンストラクター
TypeConverter() |
TypeConverter クラスの新しいインスタンスを初期化します。 |
メソッド
CanConvertFrom(ITypeDescriptorContext, Type) |
このコンバーターが、指定したコンテキストを使用して、指定された型のオブジェクトをこのコンバーターの型に変換できるかどうかを返します。 |
CanConvertFrom(Type) |
コンバーターが特定の型のオブジェクトをコンバーターの型に変換できるかどうかを示す値を返します。 |
CanConvertTo(ITypeDescriptorContext, Type) |
このコンバーターが指定のコンテキストを使用して、オブジェクトを指定の型に変換できるかどうかを返します。 |
CanConvertTo(Type) |
コンバーターがオブジェクトを指定した型に変換できるかどうかを示す値を返します。 |
ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) |
指定したコンテキストとカルチャ情報を使用して、指定したオブジェクトをこのコンバーターの型に変換します。 |
ConvertFrom(Object) |
指定した値をコンバーターの型に変換します。 |
ConvertFromInvariantString(ITypeDescriptorContext, String) |
インバリアント カルチャと指定したコンテキストを使用して、指定した文字列をコンバーターの型に変換します。 |
ConvertFromInvariantString(String) |
インバリアント カルチャを使用して、指定した文字列をコンバーターの型に変換します。 |
ConvertFromString(ITypeDescriptorContext, CultureInfo, String) |
指定したコンテキストとカルチャ情報を使用して、指定したテキストをオブジェクトに変換します。 |
ConvertFromString(ITypeDescriptorContext, String) |
指定したコンテキストを使用して、指定したテキストをオブジェクトに変換します。 |
ConvertFromString(String) |
指定したテキストをオブジェクトに変換します。 |
ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) |
指定したコンテキストとカルチャ情報を使用して、指定した値オブジェクトを指定した型に変換します。 |
ConvertTo(Object, Type) |
引数を使用して、指定した値オブジェクトを、指定した型に変換します。 |
ConvertToInvariantString(ITypeDescriptorContext, Object) |
指定したコンテキストを使用して、指定した値をインバリアント カルチャを使用した文字列形式に変換します。 |
ConvertToInvariantString(Object) |
指定した値を、インバリアント カルチャを使用した文字列形式に変換します。 |
ConvertToString(ITypeDescriptorContext, CultureInfo, Object) |
指定したコンテキストとカルチャ情報を使用して、指定した値を文字列形式に変換します。 |
ConvertToString(ITypeDescriptorContext, Object) |
指定したコンテキストを使用して、指定した値を文字列形式に変換します。 |
ConvertToString(Object) |
指定した値を文字列形式に変換します。 |
CreateInstance(IDictionary) |
Object の一連のプロパティ値を指定して、そのオブジェクトを再作成します。 |
CreateInstance(ITypeDescriptorContext, IDictionary) |
この TypeConverter を関連付ける型のインスタンスを作成します。指定されたコンテキストと、与えられているオブジェクトのプロパティ値のセットを使用します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetConvertFromException(Object) |
変換を実行できないときにスローする例外を返します。 |
GetConvertToException(Object, Type) |
変換を実行できないときにスローする例外を返します。 |
GetCreateInstanceSupported() |
このオブジェクトの値を変更するときに CreateInstance(IDictionary) メソッドを呼び出して、新しい値を作成する必要があるかどうかを返します。 |
GetCreateInstanceSupported(ITypeDescriptorContext) |
このオブジェクトの値を変更するときに、指定したコンテキストを使用して CreateInstance(IDictionary) を呼び出して、新しい値を作成する必要があるかどうかを返します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetProperties(ITypeDescriptorContext, Object) |
指定したコンテキストを使用して、value パラメーターで指定された配列型のプロパティのコレクションを返します。 |
GetProperties(ITypeDescriptorContext, Object, Attribute[]) |
指定されたコンテキストと属性を使用して、値パラメーターで指定された配列型のプロパティのコレクションを返します。 |
GetProperties(Object) |
value パラメーターに指定された配列型のプロパティのコレクションを返します。 |
GetPropertiesSupported() |
オブジェクトがプロパティをサポートしているかどうかを示す値を返します。 |
GetPropertiesSupported(ITypeDescriptorContext) |
指定したコンテキストを使用して、このオブジェクトがプロパティをサポートするかどうかを返します。 |
GetStandardValues() |
型コンバーターがデザインされた対象であるデータ型の既定のコンテキストから、標準値のコレクションを返します。 |
GetStandardValues(ITypeDescriptorContext) |
フォーマット コンテキストが提供されている場合、この型コンバーターが対象とするデータ型の標準値のコレクションを返します。 |
GetStandardValuesExclusive() |
GetStandardValues() から返された標準値のコレクションが、排他的なリストかどうかを示す値を返します。 |
GetStandardValuesExclusive(ITypeDescriptorContext) |
指定したコンテキストを使用して、GetStandardValues() から返された標準値のコレクションが有効値の排他的なリストかどうかを示す値を返します。 |
GetStandardValuesSupported() |
リストから選択できる標準値セットをオブジェクトがサポートするかどうかを示す値を返します。 |
GetStandardValuesSupported(ITypeDescriptorContext) |
指定したコンテキストを使用して、リストから選択できる標準値セットをオブジェクトがサポートするかどうかを示す値を返します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IsValid(ITypeDescriptorContext, Object) |
指定した値オブジェクトが、この型に対して有効か、指定したコンテキストに対して有効かを返します。 |
IsValid(Object) |
指定した値オブジェクトが型に対して有効かどうかを示す値を返します。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
SortProperties(PropertyDescriptorCollection, String[]) |
プロパティのコレクションを並べ替えます。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
適用対象
こちらもご覧ください
.NET