Condividi tramite


TypeConverterAttribute Classe

Definizione

Specifica il tipo da utilizzare come convertitore per l'oggetto a cui l'attributo è associato.

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
Ereditarietà
TypeConverterAttribute
Attributi

Esempio

Nell'esempio seguente viene MyClass dichiarato di usare il convertitore di tipi denominato MyClassConverter. In questo esempio si presuppone che MyClassConverter sia stato implementato altrove. La classe che implementa il convertitore (MyClassConverter) deve ereditare dalla TypeConverter classe .

[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

Nell'esempio seguente viene creata un'istanza di MyClass. Ottiene quindi gli attributi per la classe e stampa il nome del convertitore di tipi usato da 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

Commenti

La classe usata per la conversione deve ereditare da TypeConverter. Utilizzare la ConverterTypeName proprietà per ottenere il nome della classe che fornisce la conversione dei dati per l'oggetto a cui è associato questo attributo.

Per altre informazioni sugli attributi, vedere Attributi. Per altre informazioni sui convertitori di tipi, vedere la TypeConverter classe di base e Procedura: Implementare un convertitore di tipi.

Per stabilire un convertitore di tipi su una classe personalizzata che fornisce il comportamento di conversione dei tipi per XAML, applica l'attributo TypeConverterAttribute al tipo. L'argomento dell'attributo fa riferimento all'implementazione del convertitore di tipi. Il convertitore di tipi deve essere in grado di accettare valori da una stringa usata per gli attributi o il testo di inizializzazione nel markup XAML e convertire tale stringa nel tipo di destinazione previsto. Per altre informazioni, vedi TypeConverters e XAML.

Invece di applicare a tutti i valori di un tipo, è anche possibile stabilire un comportamento del convertitore di tipi per XAML in una proprietà specifica. In questo caso, si applica TypeConverterAttribute alla definizione della proprietà (la definizione esterna, non le definizioni e set specificheget).

Un comportamento del convertitore di tipi per l'utilizzo XAML di un membro associabile personalizzato può essere assegnato applicando TypeConverterAttribute alla funzione di accesso al get metodo che supporta l'utilizzo xaml. Per altre informazioni, vedere Panoramica delle proprietà associate.

Per i casi di serializzazione XAML complessi che richiedono uno stato aggiuntivo dal runtime dell'oggetto, è consigliabile definire un serializzatore di valori oltre a un convertitore di tipi e attributi che supportano entrambe le classi sui tipi personalizzati o sui membri personalizzati. Per altre informazioni, vedere ValueSerializer.

Costruttori

Nome Descrizione
TypeConverterAttribute()

Inizializza una nuova istanza della TypeConverterAttribute classe con il convertitore di tipi predefinito, ovvero una stringa vuota ("").

TypeConverterAttribute(String)

Inizializza una nuova istanza della TypeConverterAttribute classe utilizzando il nome del tipo specificato come convertitore di dati per l'oggetto a cui è associato questo attributo.

TypeConverterAttribute(Type)

Inizializza una nuova istanza della TypeConverterAttribute classe utilizzando il tipo specificato come convertitore di dati per l'oggetto a cui è associato questo attributo.

Campi

Nome Descrizione
Default

Specifica il tipo da utilizzare come convertitore per l'oggetto a cui è associato questo attributo.

Proprietà

Nome Descrizione
ConverterTypeName

Ottiene il nome completo del tipo di Type da utilizzare come convertitore per l'oggetto a cui è associato questo attributo.

TypeId

Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute.

(Ereditato da Attribute)

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che indica se il valore dell'oggetto specificato è uguale all'oggetto corrente TypeConverterAttribute.

GetHashCode()

Restituisce il codice hash per questa istanza.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

(Ereditato da Attribute)

Si applica a

Vedi anche