TypeConverterAttribute Osztály

Definíció

Megadja, hogy milyen típusú legyen konverterként használni ahhoz az objektumhoz, amelyhez ez az attribútum kötődik.

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
Öröklődés
TypeConverterAttribute
Attribútumok

Példák

Az alábbi példa deklarálja MyClass , hogy a típuskonvertert MyClassConverterhasználja. Ez a példa azt feltételezi, hogy MyClassConverter máshol lett implementálva. A konvertert megvalósító osztálynak (MyClassConverter) örökölnie kell az TypeConverter osztálytól.

[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

A következő példa létrehoz egy példányt.MyClass Ezután lekéri az osztály attribútumait, és kinyomtatja a használt MyClasstípuskonverter nevét.

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

Megjegyzések

A konvertáláshoz használt osztálynak a következőtől TypeConverterkell örökölnie: ConverterTypeName A tulajdonság használatával lekérheti annak az osztálynak a nevét, amely az attribútumhoz kötött objektum adatkonvertálását biztosítja.

Az attribútumokról további információt az Attribútumok című témakörben talál. A típuskonverterekről további információt az alaposztály és a TypeConverterTípuskonverter implementálása című témakörben talál.

Annak érdekében, hogy típuskonvertert hozzon létre egy egyéni osztályon, amely típuskonvertálási viselkedést biztosít az XAML-hez, alkalmazza az attribútumot a TypeConverterAttribute típusra. Az attribútum argumentuma a típuskonverter implementációjára hivatkozik. A típuskonverternek képesnek kell lennie az XAML-korrektúra attribútumaihoz vagy inicializálási szövegéhez használt sztring értékeinek elfogadására, és a sztringet a kívánt céltípussá kell alakítania. További információ: TypeConverters és XAML.

Ahelyett, hogy egy típus összes értékére alkalmazva lenne, az XAML típuskonverter-viselkedése egy adott tulajdonságon is meghatározható. Ebben az esetben a tulajdonságdefinícióra (a külső definícióra, nem a konkrét get és set a definíciókra) vonatkozikTypeConverterAttribute.

Az egyéni csatolható tag XAML-használatára vonatkozó típuskonverter-viselkedés az XAML-használatot támogató metódus-tartozékra való alkalmazással TypeConverterAttributeget rendelhető hozzá. További információ: Csatolt tulajdonságok áttekintése.

Az olyan összetett XAML-szerializálási eseteknél, amelyek az objektum futtatókörnyezetéből további állapotot igényelnek, érdemes lehet a típuskonverter mellett értékszerializálót definiálni, és mindkét támogatási osztályt attribútumként kell hozzárendelni az egyéni típusokhoz vagy egyéni tagokhoz. További információért lásd ValueSerializer.

Konstruktorok

Name Description
TypeConverterAttribute()

Inicializálja az TypeConverterAttribute osztály új példányát az alapértelmezett típuskonverterrel, amely egy üres sztring ("").

TypeConverterAttribute(String)

Inicializálja az TypeConverterAttribute osztály új példányát, a megadott típusnév használatával az attribútumhoz kötött objektum adatkonvertereként.

TypeConverterAttribute(Type)

Inicializálja az TypeConverterAttribute osztály új példányát, és a megadott típust használja az attribútumhoz kötött objektum adatkonvertereként.

Mezők

Name Description
Default

Megadja a konverterként használni kívánt típust ahhoz az objektumhoz, amelyhez ez az attribútum kötődik.

Tulajdonságok

Name Description
ConverterTypeName

Lekéri annak a konverternek a Type teljes típusnevét, amely ahhoz az objektumhoz van kötve, amelyhez ez az attribútum kötődik.

TypeId

Ha származtatott osztályban implementálják, ehhez egy egyedi azonosítót Attributekap.

(Öröklődés forrása Attribute)

Metódusok

Name Description
Equals(Object)

Azt adja vissza, hogy az adott objektum értéke megegyezik-e az aktuális TypeConverterAttributeértékkel.

GetHashCode()

A példány kivonatkódját adja vissza.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsDefaultAttribute()

Ha egy származtatott osztályban felül van bírálva, azt jelzi, hogy a példány értéke-e a származtatott osztály alapértelmezett értéke.

(Öröklődés forrása Attribute)
Match(Object)

Származtatott osztály felülírásakor egy olyan értéket ad vissza, amely jelzi, hogy ez a példány egy adott objektummal egyenlő-e.

(Öröklődés forrása Attribute)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

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

Névkészletet képez le a küldési azonosítók megfelelő készletére.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Lekéri egy objektum típusadatait, amelyek a felület típusadatainak lekérésére használhatók.

(Öröklődés forrása Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Lekéri az objektumok által biztosított típusinformációs felületek számát (0 vagy 1).

(Öröklődés forrása Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Hozzáférést biztosít az objektumok által közzétett tulajdonságokhoz és metódusokhoz.

(Öröklődés forrása Attribute)

A következőre érvényes:

Lásd még