Freigeben über


TypeConverter Klasse

Definition

Bietet eine einheitliche Möglichkeit zum Konvertieren von Typen von Werten in andere Typen sowie für den Zugriff auf Standardwerte und Untereigenschaften.

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. Im nächsten Codebeispiel muss eine aufgerufene MyPropertyEnum Enumeration deklariert werden.

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($"{nameof(MyProperty)} is not valid");
        }
        // 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 in der Variablen cgespeicherten Ausdrucks 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)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 die vom Objekt unterstützten Standardwerte auszudrucken.

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 außer Kraft gesetzt wird, verwenden alle Klassen, die von dieser Klasse erben, denselben Typkonverter wie die Basisklasse.

Hinweis

Greifen Sie für allgemeine Typensystemzwecke nicht direkt auf einen Typkonverter zu. Greifen Sie stattdessen mit der Verwendung TypeDescriptordes entsprechenden Konverters auf den entsprechenden Konverter zu. Weitere Informationen finden Sie in den bereitgestellten 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 möchten oder wenn Sie eine freigegebene Instanz in WPF Ressourcen erstellen, ist es akzeptabel, sie direkt zu erstellen, ohne auf TypeDescriptor oder andere Spiegelungs- und Typsystemunterstützung zu verweisen.

Von ihnen abgeleitete TypeConverter Klassen werden häufig als Teil der Konvertierung eines Attributs oder initialisierungstextwerts aus Markup (die inhärent eine Zeichenfolge ist) referenziert 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 einen XAML-Prozessor mit der Unterstützung bereit, die zum Erstellen eines Objekts aus der Zeichenfolge erforderlich ist, sodass 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 von TypeConverter der Implementierung Ihrer eigenen Konvertierungsanforderungen. Wenn Sie von dieser Klasse erben, können Sie die folgenden Methoden außer Kraft setzen:

Hinweis: Der abgeleitete 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. Gehen Sie stattdessen davon aus, dass Aufrufer Instanzen Ihres Typs in teilweiser Vertrauensstellung erstellen können.

Konstruktoren

Name Beschreibung
TypeConverter()

Initialisiert eine neue Instanz der TypeConverter-Klasse.

Methoden

Name Beschreibung
CanConvertFrom(ITypeDescriptorContext, Type)

Gibt zurück, ob dieser Konverter ein Objekt des angegebenen Typs mithilfe 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 konvertieren 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 unter Verwendung der angegebenen Kontext- und Kulturinformationen.

ConvertFrom(Object)

Konvertiert den angegebenen Wert in den Typ dieses Konverters.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Konvertiert die angegebene Zeichenfolge in den Typ dieses Konverters, wobei die invariante Kultur und der angegebene Kontext verwendet werden.

ConvertFromInvariantString(String)

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

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Konvertiert den angegebenen Text in ein Objekt mithilfe der angegebenen Kontext- und Kulturinformationen.

ConvertFromString(ITypeDescriptorContext, String)

Konvertiert den angegebenen Text mithilfe des angegebenen Kontexts in ein Objekt.

ConvertFromString(String)

Konvertiert den angegebenen Text in ein Objekt.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Konvertiert das angegebene Wertobjekt mithilfe der angegebenen Kontext- und Kulturinformationen in den angegebenen Typ.

ConvertTo(Object, Type)

Konvertiert das angegebene Wertobjekt mithilfe der Argumente in den angegebenen Typ.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Wandelt den angegebenen Wert mithilfe des angegebenen Kontexts in eine kulturinvariante Zeichenfolgendarstellung um.

ConvertToInvariantString(Object)

Konvertiert den angegebenen Wert in eine kulturinvariante Zeichenfolgendarstellung.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Konvertiert den angegebenen Wert in eine Zeichenfolgendarstellung mithilfe der angegebenen Kontext- und Kulturinformationen.

ConvertToString(ITypeDescriptorContext, Object)

Wandelt den angegebenen Wert mithilfe des angegebenen Kontexts in eine Zeichenfolgendarstellung um.

ConvertToString(Object)

Konvertiert den angegebenen Wert in eine Zeichenfolgendarstellung.

CreateInstance(IDictionary)

Erstellt einen Object bestimmten Satz von Eigenschaftswerten für das Objekt erneut.

CreateInstance(ITypeDescriptorContext, IDictionary)

Erstellt eine Instanz des Typs, dem dies TypeConverter mithilfe des angegebenen Kontexts zugeordnet ist, wobei eine Reihe von Eigenschaftswerten für das Objekt angegeben ist.

Equals(Object)

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

(Geerbt von Object)
GetConvertFromException(Object)

Gibt eine Ausnahme zurück, die ausgelöst wird, wenn eine Konvertierung nicht ausgeführt werden kann.

GetConvertToException(Object, Type)

Gibt eine Ausnahme zurück, die ausgelöst wird, wenn eine Konvertierung nicht ausgeführt werden kann.

GetCreateInstanceSupported()

Gibt zurück, ob das Ändern eines Werts für dieses Objekt einen Aufruf der CreateInstance(IDictionary) Methode erfordert, um einen neuen Wert zu erstellen.

GetCreateInstanceSupported(ITypeDescriptorContext)

Gibt zurück, ob beim Ändern eines Werts für dieses Objekt ein Aufruf zum CreateInstance(IDictionary) Erstellen eines neuen Werts mithilfe des angegebenen Kontexts erforderlich ist.

GetHashCode()

Dient als die Standard-Hashfunktion

(Geerbt von Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

Gibt eine Auflistung von Eigenschaften für den Arraytyp zurück, der durch den Wertparameter angegeben wird, wobei der angegebene Kontext und die angegebenen Attribute verwendet werden.

GetProperties(ITypeDescriptorContext, Object)

Gibt eine Auflistung von Eigenschaften für den Vom Wertparameter angegebenen Arraytyp mithilfe des angegebenen Kontexts zurück.

GetProperties(Object)

Gibt eine Auflistung von Eigenschaften für den Arraytyp zurück, der durch den Wertparameter angegeben wird.

GetPropertiesSupported()

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

GetPropertiesSupported(ITypeDescriptorContext)

Gibt zurück, ob dieses Objekt Eigenschaften mithilfe 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 entwickelt wurde.

GetStandardValues(ITypeDescriptorContext)

Gibt eine Auflistung von Standardwerten für den Datentyp zurück, für den dieser Typkonverter entwickelt wurde, wenn er mit einem Formatkontext bereitgestellt wird.

GetStandardValuesExclusive()

Gibt zurück, ob es sich bei der Auflistung der zurückgegebenen GetStandardValues() Standardwerte um eine exklusive Liste handelt.

GetStandardValuesExclusive(ITypeDescriptorContext)

Gibt zurück, ob es sich bei der Auflistung der zurückgegebenen GetStandardValues() Standardwerte um eine exklusive Liste möglicher Werte handelt, wobei der angegebene Kontext verwendet wird.

GetStandardValuesSupported()

Gibt zurück, ob dieses Objekt einen Standardsatz von Werten unterstützt, der aus einer Liste ausgewählt werden kann.

GetStandardValuesSupported(ITypeDescriptorContext)

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

GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IsValid(ITypeDescriptorContext, Object)

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

IsValid(Object)

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

MemberwiseClone()

Erstellt eine flache Kopie der 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