TypeConverter Klasse

Definition

Stellt eine einheitliche Methode zum Konvertieren von Werttypen in andere Typen sowie zum Zugreifen auf Standardwerte und Untereigenschaften bereit.

public ref class TypeConverter
public class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
Public Class TypeConverter
Vererbung
TypeConverter
Abgeleitet
Attribute

Beispiele

Das folgende Codebeispiel zeigt, wie Sie eine Instanz eines Typkonverters erstellen und an eine Klasse binden. Die Klasse, die den Konverter implementiert, MyClassConvertermuss von der -Klasse erben TypeConverter .

public:
   [TypeConverter(Sample::MyClassConverter::typeid)]
   ref class MyClass
   {
      // Insert code here.
   };
[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class Class1
    ' Insert code here.
End Class

Wenn Sie über eine Eigenschaft mit einer Enumeration verfügen, überprüfen Sie, ob ein Enumerationswert gültig ist, bevor Sie die Eigenschaft festlegen. Das nächste Codebeispiel erfordert, dass eine Enumeration mit dem Namen MyPropertyEnum deklariert wurde.

public:
   property MyPropertyEnum MyProperty 
   {
      void set( MyPropertyEnum value )
      {
         // Checks to see if the value passed is valid.
         if ( !TypeDescriptor::GetConverter( MyPropertyEnum::typeid )->IsValid( value ) )
         {
            throw gcnew ArgumentException;
         }
         // The value is valid. Insert code to set the property.
      }
   }
public MyPropertyEnum MyProperty {
    set {
       // Checks to see if the value passed is valid.
       if (!TypeDescriptor.GetConverter(typeof(MyPropertyEnum)).IsValid(value)) {
          throw new ArgumentException();
       }
       // The value is valid. Insert code to set the property.
    }
 }

Public WriteOnly Property MyProperty() As MyPropertyEnum
    Set
        ' Checks to see if the value passed is valid.
        If Not TypeDescriptor.GetConverter(GetType(MyPropertyEnum)).IsValid(value) Then
            Throw New ArgumentException()
        End If
        ' The value is valid. Insert code to set the property.
    End Set 
End Property

Eine weitere häufige Verwendung von Typkonvertern besteht darin, ein Objekt in eine Zeichenfolge zu konvertieren. Im folgenden Codebeispiel wird der Name des Color in der Variablen cgespeicherten ausgegeben.

Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.Red;
    Console.WriteLine(TypeDescriptor.GetConverter(typeof(Color)).ConvertToString(c));
Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))

Sie können auch einen Typkonverter verwenden, um einen Wert aus seinem Namen zu konvertieren, wie im nächsten Codebeispiel gezeigt.

Color c =  (Color)(TypeDescriptor::GetConverter( Color::typeid )->ConvertFromString( "Red" ));
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
Dim c As Color = CType(TypeDescriptor.GetConverter(GetType(Color)).ConvertFromString("Red"), Color)

Im folgenden Codebeispiel können Sie einen Typkonverter verwenden, um den Satz von Standardwerten auszudrucken, den das Objekt unterstützt.

for each ( Color c in TypeDescriptor::GetConverter( Color::typeid )->GetStandardValues() )
{
   Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
}
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
 }
Dim c As Color
For Each c In  TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues()
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
Next c

Hinweise

Der häufigste Konvertertyp ist derjenige, der in und aus einer Textdarstellung konvertiert. Der Typkonverter für eine Klasse wird mit einem TypeConverterAttribute an die Klasse gebunden. Sofern dieses Attribut nicht überschrieben wird, verwenden alle Klassen, die von dieser Klasse erben, den gleichen Typkonverter wie die Basisklasse.

Hinweis

Greifen Sie für allgemeine Typsystemzwecke nicht direkt auf einen Typkonverter zu. Greifen Sie stattdessen mithilfe TypeDescriptorvon auf den entsprechenden Konverter zu. Weitere Informationen finden Sie in den bereitgestellten Codebeispielen.

Bei Verwendung von XAML sucht ein XAML-Prozessor jedoch direkt nach dem TypeConverterAttribute , anstatt durchzugehen TypeDescriptor. Für Fälle, in denen Sie eine TypeDescriptor Instanz aus Code möchten oder wenn Sie eine freigegebene Instanz in WPF-Ressourcen erstellen möchten, ist es akzeptabel, sie direkt ohne Verweis auf TypeDescriptor oder andere Reflektions- und Typsystemunterstützung zu erstellen.

Von TypeConverter abgeleitete Klassen werden häufig als Teil der Art referenziert, wie ein XAML-Prozessor ein Attribut oder einen Initialisierungstextwert aus markup konvertiert (das inhärent eine Zeichenfolge ist) und ein Objekt für eine Laufzeitdarstellung generiert. Benutzerdefinierte Typautoren, die ein Typkonvertierungsverhalten für XAML unterstützen möchten, implementieren in der Regel eine TypeConverter Klasse, die ihr eigenes eindeutiges ConvertFrom Verhalten aus einer Zeichenfolge unterstützt. Dieses Verhalten ermöglicht die Typkonvertierung aus der als XAML-Attributwert bereitgestellten Zeichenfolge und stellt einem XAML-Prozessor die Unterstützung bereit, die zum Erstellen eines Objekts aus der Zeichenfolge erforderlich ist, sodass das Objekt in einem analysierten Objektgraphen erstellt werden kann. Benutzerdefinierte Typen oder Member von benutzerdefinierten Typen werden durch Anwenden TypeConverterAttribute auf die Definitionen angegeben, wobei das Attribut auf die benutzerdefinierte TypeConverter Implementierung verweist. Weitere Informationen finden Sie unter Übersicht über Typkonverter für XAML.

Hinweise für Vererber

Erben Sie von TypeConverter , um Ihre eigenen Konvertierungsanforderungen zu implementieren. Wenn Sie von dieser Klasse erben, können Sie die folgenden Methoden überschreiben:

Hinweis: Ihr abgeleiteter Typ kann als internal oder privategekennzeichnet sein, aber eine Instanz Ihres Typs kann mit der TypeDescriptor -Klasse erstellt werden. Schreiben Sie keinen unsicheren Code, indem Sie davon ausgehen, dass der Aufrufer vertrauenswürdig ist. Nehmen Sie stattdessen an, dass Aufrufer Instanzen Ihres Typs in teilweiser Vertrauenswürdigkeit erstellen können.

Weitere Informationen zu Typkonvertern für allgemeine (nicht-XAML)-Zwecke finden Sie unter Vorgehensweise: Implementieren eines Typkonverters oder generalisierte Typkonvertierung.

Konstruktoren

TypeConverter()

Initialisiert eine neue Instanz der TypeConverter-Klasse.

Methoden

CanConvertFrom(ITypeDescriptorContext, Type)

Gibt zurück, ob dieser Konverter ein Objekt vom angegebenen Typ unter Verwendung des angegebenen Kontexts in den Typ dieses Konverters konvertieren kann.

CanConvertFrom(Type)

Gibt zurück, ob dieser Konverter ein Objekt des angegebenen Typs in den Typ dieses Konverters konvertieren kann.

CanConvertTo(ITypeDescriptorContext, Type)

Gibt zurück, ob dieser Konverter das Objekt mithilfe des angegebenen Kontexts in den angegebenen Typ umwandeln kann.

CanConvertTo(Type)

Gibt zurück, ob dieser Konverter das Objekt in den angegebenen Typ konvertieren kann.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Konvertiert das angegebene Objekt in den Typ dieses Konverters mit dem angegebenen Kontext und Kulturinformationen.

ConvertFrom(Object)

Konvertiert den angegebenen Wert in den Typ dieses Konverters.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Konvertiert die angegebene Zeichenfolge unter Verwendung der invarianten Kultur und des angegebenen Kontexts in den Typ dieses Konverters.

ConvertFromInvariantString(String)

Konvertiert die angegebene Zeichenfolge unter Verwendung der invarianten Kultur in einen Typ dieses Konverters.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Konvertiert den angegebenen Text unter Verwendung des angegebenen Kontexts und der angegebenen Kulturinformationen in ein Objekt.

ConvertFromString(ITypeDescriptorContext, String)

Konvertiert den angegebenen Text unter Verwendung des angegebenen Kontexts in ein Objekt.

ConvertFromString(String)

Konvertiert den angegebenen Text in ein Objekt.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Konvertiert das angegebene Wertobjekt in den angegebenen Typ mit dem angegebenen Kontext und Kulturinformationen.

ConvertTo(Object, Type)

Konvertiert das angegebene Wertobjekt unter Verwendung der Argumente in den angegebenen Typ.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Konvertiert den angegebenen Wert unter Verwendung des angegebenen Kontexts in eine Zeichenfolgendarstellung mit invarianter Kultur.

ConvertToInvariantString(Object)

Konvertiert den angegebenen Wert in eine Zeichenfolgendarstellung mit invarianter Kultur.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Konvertiert den angegebenen Wert unter Verwendung des angegebenen Kontexts und der angegebenen Kulturinformationen in eine Zeichenfolgendarstellung.

ConvertToString(ITypeDescriptorContext, Object)

Konvertiert den angegebenen Wert unter Verwendung des angegebenen Kontexts in eine Zeichenfolgendarstellung.

ConvertToString(Object)

Konvertiert den angegebenen Wert in eine Zeichenfolgendarstellung.

CreateInstance(IDictionary)

Erstellt eine Object-Klasse mit einer angegebenen Menge von Eigenschaftswerten für das Objekt neu.

CreateInstance(ITypeDescriptorContext, IDictionary)

Erstellt über den angegebenen Kontext, der aus einer angegebenen Menge von Eigenschaftswerten für das Objekt besteht, eine Instanz des Typs, der dieser TypeConverter-Klasse zugeordnet ist.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetConvertFromException(Object)

Gibt eine Ausnahme zurück, wenn eine Konvertierung nicht erfolgen kann.

GetConvertToException(Object, Type)

Gibt eine Ausnahme zurück, wenn eine Konvertierung nicht erfolgen kann.

GetCreateInstanceSupported()

Gibt zurück, ob zum Ändern eines Werts für dieses Objekt ein Aufruf der CreateInstance(IDictionary)-Methode erforderlich ist.

GetCreateInstanceSupported(ITypeDescriptorContext)

Gibt zurück, ob bei Ändern eines Werts für dieses Objekt ein Aufruf von CreateInstance(IDictionary) zum Erstellen eines neuen Werts mit dem angegebenen Kontext erforderlich ist.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperties(ITypeDescriptorContext, Object)

Gibt unter Verwendung des angegebenen Kontexts eine Auflistung der Eigenschaften für den Typ von Array zurück, der durch den Wertparameter angegeben ist.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Gibt unter Verwendung des angegebenen Kontexts und der angegebenen Attribute eine Auflistung der Eigenschaften für den Arraytyp zurück, der durch den Wertparameter angegeben ist.

GetProperties(Object)

Gibt eine Auflistung von Eigenschaften für den Typ Array zurück, der durch den Wertparameter angegeben ist.

GetPropertiesSupported()

Gibt zurück, ob dieses Objekt Eigenschaften unterstützt.

GetPropertiesSupported(ITypeDescriptorContext)

Gibt zurück, ob dieses Objekt Eigenschaften unter Verwendung des angegebenen Kontexts unterstützt.

GetStandardValues()

Gibt eine Auflistung von Standardwerten aus dem Standardkontext für den Datentyp zurück, für den dieser Typkonverter vorgesehen ist.

GetStandardValues(ITypeDescriptorContext)

Gibt eine Auflistung von Standardwerten für den Datentyp zurück, auf den dieser Typkonverter ausgelegt ist, wenn ein Formatkontext bereitgestellt wird.

GetStandardValuesExclusive()

Gibt zurück, ob die von GetStandardValues() zurückgegebene Auflistung von Standardwerten eine exklusive Liste darstellt.

GetStandardValuesExclusive(ITypeDescriptorContext)

Gibt zurück, ob die Auflistung von Standardwerten, die von der GetStandardValues()-Methode unter Verwendung des angegebenen Kontexts zurückgegeben werden, eine exklusive Liste von möglichen Werten darstellt.

GetStandardValuesSupported()

Gibt zurück, ob dieses Objekt einen Standardsatz von Werten unterstützt, die aus einer Liste ausgewählt werden können.

GetStandardValuesSupported(ITypeDescriptorContext)

Gibt zurück, ob dieses Objekt einen Standardsatz von Werten unterstützt, die unter Verwendung des angegebenen Kontexts aus einer Liste ausgewählt werden können.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsValid(ITypeDescriptorContext, Object)

Gibt zurück, ob das angegebene Wertobjekt für diesen Typ und den angegebenen Kontext gültig ist.

IsValid(Object)

Ruft ab, ob das angegebene Werteobjekt für diesen Typ gültig ist.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SortProperties(PropertyDescriptorCollection, String[])

Sortiert eine Auflistung von Eigenschaften.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen