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 TypeConverter Klasse erben.

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 aufgerufene Enumeration 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 allgemeine Typkonverterverwendung besteht darin, ein Objekt in eine Zeichenfolge zu konvertieren. Im folgenden Codebeispiel wird der Name des Color gespeicherten In der Variablen cgedruckt.

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, die 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 der Verwendung TypeDescriptordes entsprechenden Konverters auf den entsprechenden Konverter zu. Weitere Informationen finden Sie in den codebeispielen.

Bei verwendung von XAML sucht TypeConverterAttribute ein XAML-Prozessor jedoch direkt, anstatt durchzugehen TypeDescriptor. In Fällen, in denen Sie eine TypeDescriptor Instanz aus Code erstellen oder eine freigegebene Instanz in WPF-Ressourcen erstellen möchten, ist es akzeptabel, sie direkt zu erstellen, ohne auf die Unterstützung von Reflexionen oder anderen Reflexionen und Systemtypen verweisen TypeDescriptor zu müssen.

Von diesem abgeleiteten TypeConverter Klassen wird häufig als Teil der Konvertierung eines Attributs oder initialisierungstextwerts aus Markup (inhärent eine Zeichenfolge) verwiesen 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 Zeichenfolge, die als XAML-Attributwert bereitgestellt wird, und stellt einen XAML-Prozessor bereit, der zum Erstellen eines Objekts aus der Zeichenfolge erforderlich ist, damit das Objekt in einem analysierten Objektdiagramm 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 Type Converters for XAML Overview.

Hinweise für Vererber

Erben Sie, TypeConverter um Ihre eigenen Konvertierungsanforderungen zu implementieren. Wenn Sie von dieser Klasse erben, können Sie die folgenden Methoden außer Kraft setzen: – Um benutzerdefinierte Typkonvertierung zu unterstützen, überschreiben Sie die CanConvertFrom(ITypeDescriptorContext, Type)Methoden CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object), und ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) setzen Sie sie außer Kraft.

Hinweis: Ihr abgeleiteter Typ kann als internal oder private, aber eine Instanz Ihres Typs mit der TypeDescriptor Klasse erstellt werden. Schreiben Sie unsicheren Code nicht, 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 How to: Implement a Type Converter or Generalized Type Conversion.

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

Siehe auch