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 mit dem Namen MyClassConverterdeklariert. In diesem Beispiel wird davon ausgegangen, dass MyClassConverter an anderer Stelle implementiert wurde. Die Klasse, die den Konverter (MyClassConverter) implementiert, muss von der -Klasse erben 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

Im nächsten Beispiel wird eine Instanz von MyClasserstellt. Anschließend ruft er die Attribute für die -Klasse ab und gibt den Namen des Typkonverters aus, der von verwendet wird 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

Hinweise

Die Klasse, die Sie für die Konvertierung verwenden, muss von erben 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 unter Basisklasse TypeConverter 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 In der Lage sein, Werte aus einer Zeichenfolge zu akzeptieren, die für Attribute oder Initialisierungstext im XAML-Markup verwendet wird, und diese Zeichenfolge in den gewünschten Zieltyp zu konvertieren. Weitere Informationen finden Sie unter TypeConverter und XAML.

Anstelle der Anwendung auf alle Werte eines Typs kann das Verhalten eines Typkonverters für XAML auch für eine bestimmte Eigenschaft festgelegt werden. In diesem Fall wenden Sie TypeConverterAttribute auf die Eigenschaftsdefinition an (die äußere Definition, nicht die spezifischen get- und set-Definitionen).

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

Bei komplexen XAML-Serialisierungsfällen, die einen zusätzlichen Zustand von der Objektruntime erfordern, sollten Sie zusätzlich zu einem Typkonverter ein Wertserialisierungsprogramm definieren und beide Unterstützungsklassen für Ihre benutzerdefinierten Typen oder benutzerdefinierten Member zuordnen. 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