TypeConverter クラス

定義

値の型を他の型に変換し、標準値とサブプロパティにアクセスするための統一的な方法を提供します。

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つの一般的な型コンバーターの使用方法は、オブジェクトを文字列に変換することです。 次のコード例では、 Color 変数に格納されているの名前を出力し c ます。

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 プロセッサに提供できるようになります。これにより、解析されたオブジェクトグラフでオブジェクトが生成されるようになります。 カスタム型のカスタム型またはカスタムメンバーは、カスタム TypeConverterAttribute 実装を参照する属性を使用して、定義にを適用することによって示され TypeConverter ます。 詳細については、「 XAML の型コンバーターの概要」を参照してください。

注意 (継承者)

を継承し TypeConverter て、独自の変換要件を実装します。 このクラスから継承する場合は、次のメソッドをオーバーライドできます。 -カスタムの型変換をサポートするには、、、、およびの各メソッドをオーバーライドし CanConvertFrom(ITypeDescriptorContext, Type) CanConvertTo(ITypeDescriptorContext, Type) ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) ます。

-オブジェクトを再作成する必要がある型を変換して値を変更するには、 CreateInstance(ITypeDescriptorContext, IDictionary) メソッドとメソッドをオーバーライドし GetCreateInstanceSupported(ITypeDescriptorContext) ます。

-プロパティをサポートする型を変換するには、 GetProperties(ITypeDescriptorContext, Object, Attribute[]) メソッドとメソッドをオーバーライドし GetPropertiesSupported(ITypeDescriptorContext) ます。 変換するクラスにプロパティがなく、プロパティを実装する必要がある場合は、 TypeConverter.SimplePropertyDescriptor プロパティ記述子を実装するためのベースとしてクラスを使用できます。 から継承する場合は、 TypeConverter.SimplePropertyDescriptor メソッドとメソッドをオーバーライドする必要があり GetValue(Object) SetValue(Object, Object) ます。

-標準値をサポートする型を変換するには、、、およびの各メソッドをオーバーライドし GetStandardValues(ITypeDescriptorContext) GetStandardValuesExclusive(ITypeDescriptorContext) GetStandardValuesSupported(ITypeDescriptorContext) IsValid(ITypeDescriptorContext, Object) ます。

注: 派生型はまたはとしてマークされている場合 internal private がありますが、クラスを使用して型のインスタンスを作成でき 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)

適用対象

こちらもご覧ください