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

L'esempio seguente dichiara MyClass 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

L'esempio successivo crea 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 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

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 in una classe personalizzata che fornisce il comportamento di conversione dei tipi per XAML, si 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 attributi o testo di inizializzazione nel markup XAML e convertire tale stringa nel tipo di destinazione previsto. Per altre informazioni, vedere TypeConverters e XAML.

Anziché 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 collegato personalizzato può essere assegnato applicando TypeConverterAttribute alla funzione di accesso al get metodo che supporta l'utilizzo XAML. Per altre informazioni, vedere Cenni preliminari sulle 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 entrambe le classi di supporto per i tipi personalizzati o i membri personalizzati. Per altre informazioni, vedere ValueSerializer.

Costruttori

TypeConverterAttribute()

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

TypeConverterAttribute(String)

Inizializza una nuova istanza della classe TypeConverterAttribute, 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 classe TypeConverterAttribute, utilizzando il nome del tipo specificato come convertitore di dati per l'oggetto a cui è associato questo attributo.

Campi

Default

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

Proprietà

ConverterTypeName

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

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Specifica se il valore dell'oggetto specificato è uguale all'oggetto TypeConverterAttribute corrente.

GetHashCode()

Restituisce il codice hash per l'istanza.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di 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 equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

_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 relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a 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 a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Vedi anche