TypeConverter TypeConverter TypeConverter TypeConverter Class

定義

値の型を他の型に変換し、標準値とサブプロパティにアクセスするための統一的な方法を提供します。Provides a unified way of converting types of values to other types, as well as for accessing standard values and subproperties.

public ref class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
Public Class TypeConverter
継承
TypeConverterTypeConverterTypeConverterTypeConverter
派生
属性

型コンバーターのインスタンスを作成してクラスにバインドする方法を次のコード例に示します。The following code example shows how to create an instance of a type converter and bind it to a class. コンバーターをMyClassConverter実装するクラスは、 TypeConverterクラスから継承する必要があります。The class implementing the converter, MyClassConverter, must inherit from the TypeConverter class.

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 'MyClass

列挙型を持つプロパティがある場合は、プロパティを設定する前に、列挙値が有効かどうかを確認してください。When you have a property that has an enumeration, check to see whether an enumeration value is valid before setting the property. 次のコード例では、というMyPropertyEnum列挙体が宣言されている必要があります。The next code example requires that an enumeration called MyPropertyEnum has been declared.

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つの一般的な型コンバーターの使用方法は、オブジェクトを文字列に変換することです。Another common type converter usage is to convert an object to a string. 次のコード例では、変数Color cに格納されているの名前を出力します。The following code example prints out the name of the Color stored in the variable c.

Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.Red;
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))

また、次のコード例に示すように、型コンバーターを使用して、名前から値を変換することもできます。You can also use a type converter to convert a value from its name, as shown in the next code example.

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)

次のコード例では、型コンバーターを使用して、オブジェクトがサポートする標準値のセットを出力できます。In the following code example, you can use a type converter to print out the set of standard values that the object supports.

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

注釈

最も一般的なコンバーターの種類は、テキスト表現との間で変換を行うものです。The most common type of converter is one that converts to and from a text representation. クラスの型コンバーターは、をTypeConverterAttribute使用してクラスにバインドされます。The type converter for a class is bound to the class with a TypeConverterAttribute. この属性がオーバーライドされない限り、このクラスを継承するすべてのクラスは、基底クラスと同じ型コンバーターを使用します。Unless this attribute is overridden, all classes that inherit from this class use the same type converter as the base class.

注意

一般的な型システムの目的では、型コンバーターに直接アクセスしないでください。For general type system purposes, do not access a type converter directly. 代わりに、を使用TypeDescriptorして適切なコンバーターにアクセスします。Instead, access the appropriate converter by using TypeDescriptor. 詳細については、提供されているコード例を参照してください。For more information, see the code examples provided.

ただし、xaml を使用する場合、xaml プロセッサはをTypeConverterAttribute経由TypeDescriptorせずにを直接検索します。However, when using XAML, a XAML processor searches for the TypeConverterAttribute directly, instead of going through TypeDescriptor. コードからインスタンスをTypeDescriptor作成する場合や、WPF リソースで共有インスタンスを作成する場合は、 TypeDescriptorまたは他のリフレクションと型システムのサポートを使用せずに、直接構築することもできます。For cases where you do want a TypeDescriptor instance from code, or where you create a shared instance in WPF resources, it is acceptable to construct it directly without referencing TypeDescriptor or other reflection and type system support.

からTypeConverter派生したクラスは、多くの場合、XAML プロセッサが属性または初期化テキスト値をマークアップ (本質的には文字列) から変換し、実行時表現用のオブジェクトを生成する方法の一部として参照されます。Classes derived from TypeConverter are often referenced as part of how a XAML processor converts an attribute or initialization text value from markup (which is inherently a string) and generates an object for a run-time representation. XAML の型変換動作をサポートするカスタム型の作成者は、通常TypeConverter 、文字列から独自の固有ConvertFromの動作をサポートするクラスを実装します。Custom type authors that intend to support a type conversion behavior for XAML typically implement a TypeConverter class that supports their own unique ConvertFrom behavior from a string. この動作により、XAML 属性値として指定された文字列からの型変換が可能になり、文字列からオブジェクトを作成するために必要なサポートを XAML プロセッサに提供できるようになります。これにより、解析されたオブジェクトグラフでオブジェクトが生成されるようになります。This behavior enables type conversion from the string provided as a XAML attribute value and provides a XAML processor with the support needed to create an object from the string, so that the object can be produced in a parsed object graph. カスタム型のカスタム型またはカスタムメンバーは、 TypeConverterAttributeカスタムTypeConverter実装を参照する属性を使用して、定義にを適用することによって示されます。Custom types or members of custom types are indicated by applying TypeConverterAttribute to the definitions, with the attribute referencing the custom TypeConverter implementation. 詳細については、「 XAML の型コンバーターの概要」を参照してください。For more information, see Type Converters for XAML Overview.

注意 (継承者)

TypeConverter継承して、独自の変換要件を実装します。Inherit from TypeConverter to implement your own conversion requirements. このクラスから継承する場合は、次のメソッドをオーバーライドできます。When you inherit from this class, you can override the following methods: -カスタムの型変換をサポートするにCanConvertFrom(ITypeDescriptorContext, Type)CanConvertTo(ITypeDescriptorContext, Type)ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)、、 ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) 、およびの各メソッドをオーバーライドします。- To support custom type conversion, override the CanConvertFrom(ITypeDescriptorContext, Type), CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object), and ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) methods.

-オブジェクトを再作成する必要がある型を変換して値を変更するCreateInstance(ITypeDescriptorContext, IDictionary)GetCreateInstanceSupported(ITypeDescriptorContext)は、メソッドとメソッドをオーバーライドします。- To convert types that must re-create the object to change its value, override the CreateInstance(ITypeDescriptorContext, IDictionary) and GetCreateInstanceSupported(ITypeDescriptorContext) methods.

-プロパティをサポートする型を変換するにGetProperties(ITypeDescriptorContext, Object, Attribute[])GetPropertiesSupported(ITypeDescriptorContext) 、メソッドとメソッドをオーバーライドします。- To convert types that support properties, override the GetProperties(ITypeDescriptorContext, Object, Attribute[]) and GetPropertiesSupported(ITypeDescriptorContext) methods. 変換するクラスにプロパティがなく、プロパティを実装する必要がある場合は、プロパティ記述子を実装TypeConverter.SimplePropertyDescriptorするためのベースとしてクラスを使用できます。If the class you are converting does not have properties, and you need to implement properties, you can use the TypeConverter.SimplePropertyDescriptor class as a base for implementing the property descriptors. からTypeConverter.SimplePropertyDescriptor継承する場合は、メソッドGetValue(Object)SetValue(Object, Object)メソッドをオーバーライドする必要があります。When you inherit from TypeConverter.SimplePropertyDescriptor, you must override the GetValue(Object) and SetValue(Object, Object) methods.

-標準値をサポートする型を変換するにGetStandardValues(ITypeDescriptorContext)GetStandardValuesExclusive(ITypeDescriptorContext)GetStandardValuesSupported(ITypeDescriptorContext)IsValid(ITypeDescriptorContext, Object) 、およびの各メソッドをオーバーライドします。- To convert types that support standard values, override the GetStandardValues(ITypeDescriptorContext), GetStandardValuesExclusive(ITypeDescriptorContext), GetStandardValuesSupported(ITypeDescriptorContext) and IsValid(ITypeDescriptorContext, Object) methods.

派生型はまたはinternal privateとしてマークされている場合がありますが、 TypeDescriptorクラスを使用して型のインスタンスを作成できます。Your derived type might be marked as internal or private, but an instance of your type can be created with the TypeDescriptor class. 呼び出し元が信頼されていることを前提として、安全ではないコードを記述しないでください。Do not write insecure code by assuming the caller is trusted. 代わりに、呼び出し元が部分信頼で型のインスタンスを作成する可能性があります。Assume instead that callers might create instances of your type in partial trust.

一般的な (XAML 以外の) 目的の型コンバーターの詳細については、「方法:型コンバーターまたは一般化された型変換を実装します。For more information about type converters for general (non-XAML) purposes, see How to: Implement a Type Converter or Generalized Type Conversion.

コンストラクター

TypeConverter() TypeConverter() TypeConverter() TypeConverter()

TypeConverter クラスの新しいインスタンスを初期化します。Initializes a new instance of the TypeConverter class.

メソッド

CanConvertFrom(ITypeDescriptorContext, Type) CanConvertFrom(ITypeDescriptorContext, Type) CanConvertFrom(ITypeDescriptorContext, Type) CanConvertFrom(ITypeDescriptorContext, Type)

このコンバーターが、指定したコンテキストを使用して、指定された型のオブジェクトをこのコンバーターの型に変換できるかどうかを返します。Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.

CanConvertFrom(Type) CanConvertFrom(Type) CanConvertFrom(Type) CanConvertFrom(Type)

コンバーターが特定の型のオブジェクトをコンバーターの型に変換できるかどうかを示す値を返します。Returns whether this converter can convert an object of the given type to the type of this converter.

CanConvertTo(ITypeDescriptorContext, Type) CanConvertTo(ITypeDescriptorContext, Type) CanConvertTo(ITypeDescriptorContext, Type) CanConvertTo(ITypeDescriptorContext, Type)

このコンバーターが指定のコンテキストを使用して、オブジェクトを指定の型に変換できるかどうかを返します。Returns whether this converter can convert the object to the specified type, using the specified context.

CanConvertTo(Type) CanConvertTo(Type) CanConvertTo(Type) CanConvertTo(Type)

コンバーターがオブジェクトを指定した型に変換できるかどうかを示す値を返します。Returns whether this converter can convert the object to the specified type.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

指定したコンテキストとカルチャ情報を使用して、指定されたオブジェクトをこのコンバーターの型に変換します。Converts the given object to the type of this converter, using the specified context and culture information.

ConvertFrom(Object) ConvertFrom(Object) ConvertFrom(Object) ConvertFrom(Object)

指定した値をコンバーターの型に変換します。Converts the given value to the type of this converter.

ConvertFromInvariantString(ITypeDescriptorContext, String) ConvertFromInvariantString(ITypeDescriptorContext, String) ConvertFromInvariantString(ITypeDescriptorContext, String) ConvertFromInvariantString(ITypeDescriptorContext, String)

インバリアント カルチャと指定したコンテキストを使用して、指定した文字列をコンバーターの型に変換します。Converts the given string to the type of this converter, using the invariant culture and the specified context.

ConvertFromInvariantString(String) ConvertFromInvariantString(String) ConvertFromInvariantString(String) ConvertFromInvariantString(String)

インバリアント カルチャを使用して、指定した文字列をコンバーターの型に変換します。Converts the given string to the type of this converter, using the invariant culture.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String) ConvertFromString(ITypeDescriptorContext, CultureInfo, String) ConvertFromString(ITypeDescriptorContext, CultureInfo, String) ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

指定したコンテキストとカルチャ情報を使用して、指定したテキストをオブジェクトに変換します。Converts the given text to an object, using the specified context and culture information.

ConvertFromString(ITypeDescriptorContext, String) ConvertFromString(ITypeDescriptorContext, String) ConvertFromString(ITypeDescriptorContext, String) ConvertFromString(ITypeDescriptorContext, String)

指定したコンテキストを使用して、指定したテキストをオブジェクトに変換します。Converts the given text to an object, using the specified context.

ConvertFromString(String) ConvertFromString(String) ConvertFromString(String) ConvertFromString(String)

指定したテキストをオブジェクトに変換します。Converts the specified text to an object.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

指定したコンテキストとカルチャ情報を使用して、指定した値オブジェクトを、指定した型に変換します。Converts the given value object to the specified type, using the specified context and culture information.

ConvertTo(Object, Type) ConvertTo(Object, Type) ConvertTo(Object, Type) ConvertTo(Object, Type)

引数を使用して、指定した値オブジェクトを、指定した型に変換します。Converts the given value object to the specified type, using the arguments.

ConvertToInvariantString(ITypeDescriptorContext, Object) ConvertToInvariantString(ITypeDescriptorContext, Object) ConvertToInvariantString(ITypeDescriptorContext, Object) ConvertToInvariantString(ITypeDescriptorContext, Object)

指定したコンテキストを使用して、指定した値をインバリアント カルチャを使用した文字列形式に変換します。Converts the specified value to a culture-invariant string representation, using the specified context.

ConvertToInvariantString(Object) ConvertToInvariantString(Object) ConvertToInvariantString(Object) ConvertToInvariantString(Object)

指定した値を、インバリアント カルチャを使用した文字列形式に変換します。Converts the specified value to a culture-invariant string representation.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object) ConvertToString(ITypeDescriptorContext, CultureInfo, Object) ConvertToString(ITypeDescriptorContext, CultureInfo, Object) ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

指定したコンテキストとカルチャ情報を使用して、指定した値を文字列形式に変換します。Converts the given value to a string representation, using the specified context and culture information.

ConvertToString(ITypeDescriptorContext, Object) ConvertToString(ITypeDescriptorContext, Object) ConvertToString(ITypeDescriptorContext, Object) ConvertToString(ITypeDescriptorContext, Object)

指定したコンテキストを使用して、指定した値を文字列形式に変換します。Converts the given value to a string representation, using the given context.

ConvertToString(Object) ConvertToString(Object) ConvertToString(Object) ConvertToString(Object)

指定した値を文字列形式に変換します。Converts the specified value to a string representation.

CreateInstance(IDictionary) CreateInstance(IDictionary) CreateInstance(IDictionary) CreateInstance(IDictionary)

Object の一連のプロパティ値を指定して、そのオブジェクトを再作成します。Re-creates an Object given a set of property values for the object.

CreateInstance(ITypeDescriptorContext, IDictionary) CreateInstance(ITypeDescriptorContext, IDictionary) CreateInstance(ITypeDescriptorContext, IDictionary) CreateInstance(ITypeDescriptorContext, IDictionary)

この TypeConverter を関連付ける型のインスタンスを作成します。指定されたコンテキストと、与えられているオブジェクトのプロパティ値のセットを使用します。Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetConvertFromException(Object) GetConvertFromException(Object) GetConvertFromException(Object) GetConvertFromException(Object)

変換を実行できなかった場合にスローされる例外を返します。Returns an exception to throw when a conversion cannot be performed.

GetConvertToException(Object, Type) GetConvertToException(Object, Type) GetConvertToException(Object, Type) GetConvertToException(Object, Type)

変換を実行できなかった場合にスローされる例外を返します。Returns an exception to throw when a conversion cannot be performed.

GetCreateInstanceSupported() GetCreateInstanceSupported() GetCreateInstanceSupported() GetCreateInstanceSupported()

このオブジェクトの値を変更するときに CreateInstance(IDictionary) メソッドを呼び出して、新しい値を作成する必要があるかどうかを返します。Returns whether changing a value on this object requires a call to the CreateInstance(IDictionary) method to create a new value.

GetCreateInstanceSupported(ITypeDescriptorContext) GetCreateInstanceSupported(ITypeDescriptorContext) GetCreateInstanceSupported(ITypeDescriptorContext) GetCreateInstanceSupported(ITypeDescriptorContext)

このオブジェクトの値を変更するときに、指定したコンテキストを使用して CreateInstance(IDictionary) を呼び出して、新しい値を作成する必要があるかどうかを返します。Returns whether changing a value on this object requires a call to CreateInstance(IDictionary) to create a new value, using the specified context.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetProperties(ITypeDescriptorContext, Object) GetProperties(ITypeDescriptorContext, Object) GetProperties(ITypeDescriptorContext, Object) GetProperties(ITypeDescriptorContext, Object)

指定したコンテキストを使用して、value パラメーターで指定された配列型のプロパティのコレクションを返します。Returns a collection of properties for the type of array specified by the value parameter, using the specified context.

GetProperties(ITypeDescriptorContext, Object, Attribute[]) GetProperties(ITypeDescriptorContext, Object, Attribute[]) GetProperties(ITypeDescriptorContext, Object, Attribute[]) GetProperties(ITypeDescriptorContext, Object, Attribute[])

指定したコンテキストと属性を使用して、value パラメーターで指定された配列型のプロパティのコレクションを返します。Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes.

GetProperties(Object) GetProperties(Object) GetProperties(Object) GetProperties(Object)

value パラメーターに指定された配列型のプロパティのコレクションを返します。Returns a collection of properties for the type of array specified by the value parameter.

GetPropertiesSupported() GetPropertiesSupported() GetPropertiesSupported() GetPropertiesSupported()

オブジェクトがプロパティをサポートしているかどうかを示す値を返します。Returns whether this object supports properties.

GetPropertiesSupported(ITypeDescriptorContext) GetPropertiesSupported(ITypeDescriptorContext) GetPropertiesSupported(ITypeDescriptorContext) GetPropertiesSupported(ITypeDescriptorContext)

指定したコンテキストを使用して、オブジェクトがプロパティをサポートしているかどうかを示す値を返します。Returns whether this object supports properties, using the specified context.

GetStandardValues() GetStandardValues() GetStandardValues() GetStandardValues()

型コンバーターがデザインされた対象であるデータ型の既定のコンテキストから、標準値のコレクションを返します。Returns a collection of standard values from the default context for the data type this type converter is designed for.

GetStandardValues(ITypeDescriptorContext) GetStandardValues(ITypeDescriptorContext) GetStandardValues(ITypeDescriptorContext) GetStandardValues(ITypeDescriptorContext)

書式指定コンテキストが指定されている場合、型コンバーターがデザインされた対象のデータ型の標準値のコレクションを返します。Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.

GetStandardValuesExclusive() GetStandardValuesExclusive() GetStandardValuesExclusive() GetStandardValuesExclusive()

GetStandardValues() から返された標準値のコレクションが、排他的なリストかどうかを示す値を返します。Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list.

GetStandardValuesExclusive(ITypeDescriptorContext) GetStandardValuesExclusive(ITypeDescriptorContext) GetStandardValuesExclusive(ITypeDescriptorContext) GetStandardValuesExclusive(ITypeDescriptorContext)

指定したコンテキストを使用して、GetStandardValues() から返された標準値のコレクションが有効値の排他的なリストかどうかを示す値を返します。Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list of possible values, using the specified context.

GetStandardValuesSupported() GetStandardValuesSupported() GetStandardValuesSupported() GetStandardValuesSupported()

リストから選択できる標準値セットをオブジェクトがサポートするかどうかを示す値を返します。Returns whether this object supports a standard set of values that can be picked from a list.

GetStandardValuesSupported(ITypeDescriptorContext) GetStandardValuesSupported(ITypeDescriptorContext) GetStandardValuesSupported(ITypeDescriptorContext) GetStandardValuesSupported(ITypeDescriptorContext)

指定したコンテキストを使用して、リストから選択できる標準値セットをオブジェクトがサポートするかどうかを示す値を返します。Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsValid(ITypeDescriptorContext, Object) IsValid(ITypeDescriptorContext, Object) IsValid(ITypeDescriptorContext, Object) IsValid(ITypeDescriptorContext, Object)

指定した値オブジェクトが、型および指定したコンテキストに対して有効かどうかを示す値を返します。Returns whether the given value object is valid for this type and for the specified context.

IsValid(Object) IsValid(Object) IsValid(Object) IsValid(Object)

指定した値オブジェクトが型に対して有効かどうかを示す値を返します。Returns whether the given value object is valid for this type.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
SortProperties(PropertyDescriptorCollection, String[]) SortProperties(PropertyDescriptorCollection, String[]) SortProperties(PropertyDescriptorCollection, String[]) SortProperties(PropertyDescriptorCollection, String[])

プロパティのコレクションを並べ替えます。Sorts a collection of properties.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください