TypeConverterAttribute クラス

定義

この属性が関連付けられているオブジェクトのコンバーターとして使用する型を指定します。

public ref class TypeConverterAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class TypeConverterAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type TypeConverterAttribute = class
    inherit Attribute
Public NotInheritable Class TypeConverterAttribute
Inherits Attribute
継承
TypeConverterAttribute
属性

次の例では、 MyClass という MyClassConverter型コンバーターを使用することを宣言しています。 この例では、 が MyClassConverter 他の場所に実装されていることを前提としています。 コンバーター (MyClassConverter) を実装するクラスは、 クラスから継承する TypeConverter 必要があります。

[TypeConverter(Class1::MyClassConverter::typeid)]
ref class MyClass{
   // Insert code here.
};
[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
 }
<TypeConverter(GetType(MyClassConverter))> _
Public Class ClassA
    ' Insert code here.
End Class

次の例では、 の MyClassインスタンスを作成します。 次に、 クラスの属性を取得し、 によって MyClass使用される型コンバーターの名前を出力します。

int main()
{
   // Creates a new instance of MyClass.
   Class1::MyClass^ myNewClass = gcnew Class1::MyClass;

   // Gets the attributes for the instance.
   AttributeCollection^ attributes = TypeDescriptor::GetAttributes( myNewClass );

   /* Prints the name of the type converter by retrieving the 
        * TypeConverterAttribute from the AttributeCollection. */
   TypeConverterAttribute^ myAttribute = dynamic_cast<TypeConverterAttribute^>(attributes[ TypeConverterAttribute::typeid ]);
   Console::WriteLine( "The type converter for this class is: {0}", myAttribute->ConverterTypeName );
   return 0;
}
public static int Main() {
    // Creates a new instance of MyClass.
    MyClass myNewClass = new MyClass();
 
    // Gets the attributes for the instance.
    AttributeCollection attributes = TypeDescriptor.GetAttributes(myNewClass);
 
    /* Prints the name of the type converter by retrieving the 
     * TypeConverterAttribute from the AttributeCollection. */
    TypeConverterAttribute myAttribute = 
        (TypeConverterAttribute)attributes[typeof(TypeConverterAttribute)];
    
    Console.WriteLine("The type conveter for this class is: " + 
        myAttribute.ConverterTypeName);
 
    return 0;
 }
Public Shared Function Main() As Integer
    ' Creates a new instance of ClassA.
    Dim myNewClass As New ClassA()
    
    ' Gets the attributes for the instance.
    Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(myNewClass)
    
    ' Prints the name of the type converter by retrieving the
    ' TypeConverterAttribute from the AttributeCollection. 
    Dim myAttribute As TypeConverterAttribute = _
        CType(attributes(GetType(TypeConverterAttribute)), TypeConverterAttribute)
    
    Console.WriteLine(("The type conveter for this class is: " _
        + myAttribute.ConverterTypeName))
    Return 0
End Function 'Main

注釈

変換に使用するクラスは、 から TypeConverter継承する必要があります。 プロパティを ConverterTypeName 使用して、この属性がバインドされているオブジェクトのデータ変換を提供するクラスの名前を取得します。

属性の詳細については、「属性」を参照してください。 型コンバーターの詳細については、「基本クラス」および「方法: 型コンバーターを実装する」を参照してくださいTypeConverter

XAML の型変換動作を提供するカスタム クラスに型コンバーターを確立するには、 属性を TypeConverterAttribute 型に適用します。 属性の 引数は、型コンバーターの実装を参照します。 型コンバーターは、XAML マークアップの属性または初期化テキストに使用される文字列の値を受け入れ、その文字列を目的の変換先の型に変換できる必要があります。 詳細については、「TypeConverters および XAML」を参照してください。

型のすべての値に適用するのではなく、XAML 用の型コンバーターの動作を特定のプロパティに設定することもできます。 この場合は、TypeConverterAttribute をプロパティの定義 (特定の get および set の定義ではなく、外側の定義) に適用します。

カスタム アタッチ可能メンバーを XAML で使用する場合の型コンバーターの動作は、XAML での使用をサポートする get メソッド アクセサーに TypeConverterAttribute を適用することによって割り当てることができます。 詳細については、「添付プロパティの概要」を参照してください。

オブジェクト ランタイムからの追加の状態を必要とする複雑な XAML シリアル化の場合は、型コンバーターに加えて値シリアライザーを定義することを検討してください。属性はどちらもカスタム型またはカスタム メンバーのクラスをサポートします。 詳細については、「ValueSerializer」を参照してください。

コンストラクター

TypeConverterAttribute()

既定の型コンバーターである空の文字列 ("") を使用して、TypeConverterAttribute クラスの新しいインスタンスを初期化します。

TypeConverterAttribute(String)

この属性が関連付けられているオブジェクトのデータ コンバーターとして指定した型名を使用して、TypeConverterAttribute クラスの新しいインスタンスを初期化します。

TypeConverterAttribute(Type)

この属性が関連付けられているオブジェクトのデータ コンバーターとして型名を指定して、TypeConverterAttribute クラスの新しいインスタンスを初期化します。

フィールド

Default

この属性が関連付けられているオブジェクトのコンバーターとして使用する型を指定します。

プロパティ

ConverterTypeName

この属性が関連付けられているオブジェクトのコンバーターとして使用する Type の完全修飾型名を取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)

メソッド

Equals(Object)

指定したオブジェクトの値が現在の TypeConverterAttribute と等しいかどうかを示す値を返します。

GetHashCode()

このインスタンスのハッシュ コードを返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください