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 MyClassConverter sie 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 dem MyClassverwendet 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 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

Hinweise

Die Klasse, die Sie für die Konvertierung verwenden, muss erben von TypeConverter. Verwenden Sie die ConverterTypeName Eigenschaft, um den Namen der Klasse abzurufen, an die die Datenkonvertierung für das Objekt bereitgestellt wird, 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 ihre Typkonverterimplementierung. Der 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. Weitere Informationen finden Sie unter TypeConverters und XAML.

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

Ein Typkonverterverhalten für die XAML-Verwendung eines benutzerdefinierten angefügten Elements kann zugewiesen werden, indem TypeConverterAttribute er auf den get Methodenzugriffsor angewendet wird, der 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 serialisieren und beide Unterstützungsklassen für benutzerdefinierte Typen oder benutzerdefinierte Member attributieren. Weitere Informationen finden Sie unter ValueSerializer.

Konstruktoren

TypeConverterAttribute()

Initialisiert eine neue Instanz der TypeConverterAttribute-Klasse mit dem Standardtypkonverter. Dies ist eine leere Zeichenfolge ("").

TypeConverterAttribute(String)

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

TypeConverterAttribute(Type)

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

Felder

Default

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

Eigenschaften

ConverterTypeName

Ruft den voll gekennzeichneten Typnamen von Type ab, der als Konverter für das Objekt verwendet wird, an das dieses Attribut gebunden ist.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt zurück, ob der Wert des angegebenen Objekts gleich dem aktuellen TypeConverterAttribute ist.

GetHashCode()

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

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_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 deren Hilfe 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)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Siehe auch