TypeConverterAttribute Klas

Definitie

Hiermee geeft u op welk type moet worden gebruikt als conversieprogramma voor het object waaraan dit kenmerk is gebonden.

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
Overname
TypeConverterAttribute
Kenmerken

Voorbeelden

In het volgende voorbeeld wordt het MyClass type conversieprogramma met de naam gebruikt MyClassConverter. In dit voorbeeld wordt ervan uitgegaan dat deze MyClassConverter elders is geïmplementeerd. De klasse die het conversieprogramma (MyClassConverter) implementeert, moet overnemen van de TypeConverter klasse.

[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

In het volgende voorbeeld wordt een exemplaar van MyClass. Vervolgens worden de kenmerken voor de klasse opgehaald en wordt de naam afgedrukt van het type conversieprogramma dat wordt gebruikt door 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();

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

Opmerkingen

De klasse die u voor conversie gebruikt, moet overnemen van TypeConverter. Gebruik de ConverterTypeName eigenschap om de naam op te halen van de klasse die de gegevensconversie voor het object biedt waaraan dit kenmerk is gebonden.

Zie Kenmerken voor meer informatie over kenmerken. Zie de TypeConverter basisklasse en How to: Implement a Type Converter (Een typeconversieprogramma implementeren) voor meer informatie over typeconversieprogramma's.

Als u een typeconversieprogramma wilt instellen voor een aangepaste klasse die typeconversiegedrag biedt voor XAML, past u het TypeConverterAttribute kenmerk toe op uw type. Het argument van het kenmerk verwijst naar de implementatie van het type conversieprogramma. Uw typeconversieprogramma moet waarden kunnen accepteren van een tekenreeks die wordt gebruikt voor kenmerken of initialisatietekst in XAML-markeringen en die tekenreeks converteren naar het beoogde doeltype. Zie TypeConverters en XAML voor meer informatie.

In plaats van op alle waarden van een type toe te passen, kan een typeconversiegedrag voor XAML ook worden ingesteld op een specifieke eigenschap. In dit geval past u zich toe op TypeConverterAttribute de eigenschapsdefinitie (de buitenste definitie, niet de specifieke get en set definities).

Een typeconversiegedrag voor het gebruik van XAML van een aangepast koppelbaar lid kan worden toegewezen door toe te passen op TypeConverterAttribute de get methodetoegangsor die het XAML-gebruik ondersteunt. Zie Overzicht van bijgevoegde eigenschappen voor meer informatie.

Voor complexe XAML-serialisatiecases waarvoor extra status van de objectruntime is vereist, kunt u een waardeserialisatie definiëren naast een typeconversieprogramma en zowel ondersteuningsklassen voor uw aangepaste typen als aangepaste leden. Zie ValueSerializer voor meer informatie.

Constructors

Name Description
TypeConverterAttribute()

Initialiseert een nieuw exemplaar van de TypeConverterAttribute klasse met het standaardtypeconversieprogramma, een lege tekenreeks ("").

TypeConverterAttribute(String)

Initialiseert een nieuw exemplaar van de TypeConverterAttribute klasse, waarbij de opgegeven typenaam wordt gebruikt als het gegevensconversieprogramma voor het object waaraan dit kenmerk is gebonden.

TypeConverterAttribute(Type)

Initialiseert een nieuw exemplaar van de TypeConverterAttribute klasse, met behulp van het opgegeven type als het gegevensconversieprogramma voor het object waaraan dit kenmerk is gebonden.

Velden

Name Description
Default

Hiermee geeft u het type dat moet worden gebruikt als conversieprogramma voor het object waaraan dit kenmerk is gebonden.

Eigenschappen

Name Description
ConverterTypeName

Hiermee haalt u de volledig gekwalificeerde typenaam op van het Type te gebruiken als conversieprogramma voor het object waaraan dit kenmerk is gebonden.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Geeft als resultaat of de waarde van het opgegeven object gelijk is aan de huidige TypeConverterAttribute.

GetHashCode()

Retourneert de hash-code voor dit exemplaar.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op

Zie ook