TypeConverterAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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) |