Freigeben über


TypeConverterAttribute Klasse

Definition

Gibt an, welcher Typ als Konverter für das Objekt verwendet werden sollte, an das dieses Attribut gebunden ist.

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
Vererbung
TypeConverterAttribute
Attribute

Beispiele

Im folgenden Beispiel wird die Verwendung des Typkonverters MyClass deklariert, der aufgerufen wird MyClassConverter. In diesem Beispiel wird davon ausgegangen, dass sie MyClassConverter an anderer Stelle implementiert wurde. Die Klasse, die den Konverter implementiert (MyClassConverter) muss von der TypeConverter Klasse erben.

[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

Im nächsten Beispiel wird eine Instanz von MyClass. Anschließend ruft es die Attribute für die Klasse ab und druckt den Namen des typkonverters, von MyClassdem verwendet wird.

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();

    // 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

Hinweise

Die Klasse, die Sie für die Konvertierung verwenden, muss von TypeConverter. Verwenden Sie die ConverterTypeName Eigenschaft, um den Namen der Klasse abzurufen, die die Datenkonvertierung für das Objekt bereitstellt, an das dieses Attribut gebunden ist.

Weitere Informationen zu Attributen finden Sie unter "Attribute". Weitere Informationen zu Typkonvertern finden Sie in der TypeConverter Basisklasse und vorgehensweise: Implementieren eines Typkonverters.

Um einen Typkonverter für eine benutzerdefinierte Klasse einzurichten, die das Typkonvertierungsverhalten für XAML bereitstellt, wenden Sie das TypeConverterAttribute Attribut auf Ihren Typ an. Das Argument des Attributs verweist auf die Typkonverterimplementierung. Ihr Typkonverter sollte Werte aus einer Zeichenfolge akzeptieren können, die für Attribute oder Initialisierungstext im XAML-Markup verwendet wird, und diese Zeichenfolge in Ihren beabsichtigten Zieltyp konvertieren können. Weitere Informationen finden Sie unter TypeConverters und XAML.

Anstatt auf alle Werte eines Typs anzuwenden, kann ein Typkonverterverhalten für XAML auch für eine bestimmte Eigenschaft festgelegt werden. In diesem Fall gelten Sie für TypeConverterAttribute die Eigenschaftsdefinition (die äußere Definition, nicht die spezifischen get und set Definitionen).

Ein Typkonverterverhalten für die XAML-Verwendung eines benutzerdefinierten anfügenden Elements kann zugewiesen werden, indem er auf den Methodenaccessor angewendet TypeConverterAttribute wird, der get die XAML-Verwendung unterstützt. Weitere Informationen finden Sie unter "Übersicht über angefügte Eigenschaften".

Bei komplexen XAML-Serialisierungsfällen, die zusätzlichen Zustand aus der Objektlaufzeit erfordern, sollten Sie zusätzlich zu einem Typkonverter einen Wert serialisierer definieren und beide Unterstützungsklassen für Ihre benutzerdefinierten Typen oder benutzerdefinierten Member attributieren. Weitere Informationen finden Sie unter ValueSerializer.

Konstruktoren

Name Beschreibung
TypeConverterAttribute()

Initialisiert eine neue Instanz der TypeConverterAttribute Klasse mit dem Standardtypkonverter, bei dem es sich um eine leere Zeichenfolge ("") handelt.

TypeConverterAttribute(String)

Initialisiert eine neue Instanz der TypeConverterAttribute Klasse, wobei der angegebene Typname als Datenkonverter für das Objekt verwendet wird, an das dieses Attribut gebunden ist.

TypeConverterAttribute(Type)

Initialisiert eine neue Instanz der TypeConverterAttribute Klasse, wobei der angegebene Typ als Datenkonverter für das Objekt verwendet wird, an das dieses Attribut gebunden ist.

Felder

Name Beschreibung
Default

Gibt den Typ an, der als Konverter für das Objekt verwendet werden soll, an das dieses Attribut gebunden ist.

Eigenschaften

Name Beschreibung
ConverterTypeName

Ruft den vollqualifizierten Typnamen des Type zu verwendenden Konverters für das Objekt ab, an das dieses Attribut gebunden ist.

TypeId

Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute.

(Geerbt von Attribute)

Methoden

Name Beschreibung
Equals(Object)

Gibt zurück, ob der Wert des angegebenen Objekts dem aktuellen TypeConverterAttributeentspricht.

GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen