TypeConverter Classe

Définition

Propose un procédé unifié pour convertir les types de valeurs en d'autres types, ainsi que pour accéder aux valeurs et sous-propriétés standard.

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
Héritage
TypeConverter
Dérivé
Attributs

Exemples

L’exemple de code suivant montre comment créer une instance d’un convertisseur de type et la lier à une classe. La classe qui implémente le convertisseur, MyClassConverter , doit hériter de la TypeConverter classe.

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

Quand vous avez une propriété qui a une énumération, vérifiez si une valeur d’énumération est valide avant de définir la propriété. L’exemple de code suivant requiert qu’une énumération appelée MyPropertyEnum ait été déclarée.

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

Une autre utilisation du convertisseur de type commun consiste à convertir un objet en chaîne. L’exemple de code suivant imprime le nom du Color stocké dans la variable c .

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))

Vous pouvez également utiliser un convertisseur de type pour convertir une valeur de son nom, comme indiqué dans l’exemple de code suivant.

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)

Dans l’exemple de code suivant, vous pouvez utiliser un convertisseur de type pour imprimer l’ensemble de valeurs standard que l’objet prend en charge.

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

Remarques

Le type le plus courant de convertisseur est un convertisseur qui convertit en et à partir d’une représentation textuelle. Le convertisseur de type pour une classe est lié à la classe avec un TypeConverterAttribute . À moins que cet attribut ne soit substitué, toutes les classes qui héritent de cette classe utilisent le même convertisseur de type que la classe de base.

Notes

Pour le système de type général, n’accédez pas directement à un convertisseur de type. Au lieu de cela, accédez au convertisseur approprié à l’aide de TypeDescriptor . Pour plus d’informations, consultez les exemples de code fournis.

Toutefois, lors de l’utilisation de XAML, un processeur XAML recherche TypeConverterAttribute directement le, au lieu de passer par TypeDescriptor . Dans les cas où vous souhaitez obtenir une TypeDescriptor instance à partir du code, ou lorsque vous créez une instance partagée dans des ressources WPF, il est acceptable de la construire directement sans référencement TypeDescriptor ni autre réflexion et prise en charge du système de type.

Les classes dérivées de TypeConverter sont souvent référencées dans le cadre de la manière dont un processeur XAML convertit un attribut ou une valeur de texte d’initialisation à partir du balisage (qui est fondamentalement une chaîne) et génère un objet pour une représentation au moment de l’exécution. Les créateurs de types personnalisés qui envisagent de prendre en charge un comportement de conversion de type pour XAML implémentent généralement une TypeConverter classe qui prend en charge leur propre ConvertFrom comportement unique à partir d’une chaîne. Ce comportement permet la conversion de type à partir de la chaîne fournie en tant que valeur d’attribut XAML et fournit un processeur XAML avec la prise en charge nécessaire pour créer un objet à partir de la chaîne, afin que l’objet puisse être produit dans un graphique d’objet analysé. Les types personnalisés ou les membres de types personnalisés sont indiqués en appliquant TypeConverterAttribute aux définitions, l’attribut référençant l' TypeConverter implémentation personnalisée. Pour plus d’informations, consultez vue d’ensemble des convertisseurs de type pour XAML.

Notes pour les héritiers

Héritez de TypeConverter pour implémenter vos propres exigences de conversion. Lorsque vous héritez de cette classe, vous pouvez substituer les méthodes suivantes : -Pour prendre en charge la conversion de type personnalisé, substituez les CanConvertFrom(ITypeDescriptorContext, Type) méthodes,, CanConvertTo(ITypeDescriptorContext, Type) ConvertFrom(ITypeDescriptorContext, CultureInfo, Object) et ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) .

-Pour convertir les types qui doivent recréer l’objet pour modifier sa valeur, substituez les CreateInstance(ITypeDescriptorContext, IDictionary) GetCreateInstanceSupported(ITypeDescriptorContext) méthodes et.

-Pour convertir les types qui prennent en charge les propriétés, substituez les GetProperties(ITypeDescriptorContext, Object, Attribute[]) GetPropertiesSupported(ITypeDescriptorContext) méthodes et. Si la classe que vous convertissez n’a pas de propriétés et que vous devez implémenter des propriétés, vous pouvez utiliser la TypeConverter.SimplePropertyDescriptor classe comme base pour l’implémentation des descripteurs de propriété. Lorsque vous héritez de TypeConverter.SimplePropertyDescriptor , vous devez substituer GetValue(Object) les SetValue(Object, Object) méthodes et.

-Pour convertir les types qui prennent en charge les valeurs standard, substituez les GetStandardValues(ITypeDescriptorContext) GetStandardValuesExclusive(ITypeDescriptorContext) GetStandardValuesSupported(ITypeDescriptorContext) méthodes, et IsValid(ITypeDescriptorContext, Object) .

Remarque : votre type dérivé peut être marqué comme internal ou private , mais une instance de votre type peut être créée avec la TypeDescriptor classe. N’écrivez pas de code non sécurisé en supposant que l’appelant est approuvé. Supposons plutôt que les appelants peuvent créer des instances de votre type en confiance partielle.

Pour plus d’informations sur les convertisseurs de type pour des raisons générales (non XAML), consultez Comment : implémenter un convertisseur de type ou une conversion de type généralisée.

Constructeurs

TypeConverter()

Initialise une nouvelle instance de la classe TypeConverter.

Méthodes

CanConvertFrom(ITypeDescriptorContext, Type)

Retourne une valeur indiquant si ce convertisseur peut convertir un objet du type donné en objet du type de ce convertisseur à l’aide du contexte spécifié.

CanConvertFrom(Type)

Retourne une valeur indiquant si ce convertisseur peut convertir un objet du type donné en objet du type de ce convertisseur.

CanConvertTo(ITypeDescriptorContext, Type)

Retourne une valeur indiquant si ce convertisseur peut convertir l’objet en objet du type spécifié, à l’aide du contexte spécifié.

CanConvertTo(Type)

Retourne une valeur indiquant si ce convertisseur peut convertir l'objet en objet du type spécifié.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Convertit l'objet donné au type de ce convertisseur, en utilisant le contexte et les informations de culture spécifiés.

ConvertFrom(Object)

Convertit la valeur donnée en valeur du type de ce convertisseur.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Convertit la chaîne donnée au type de ce convertisseur, à l'aide des informations de culture indifférente et du contexte spécifiés.

ConvertFromInvariantString(String)

Convertit la chaîne donnée en représentation sous forme de chaîne du type de ce convertisseur, à l'aide de la culture dite indifférente.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Convertit le texte donné en objet, à l'aide du contexte et des informations de culture spécifiés.

ConvertFromString(ITypeDescriptorContext, String)

Convertit le texte donné en objet, à l'aide du contexte spécifié.

ConvertFromString(String)

Convertit le texte spécifié en objet.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Convertit l'objet valeur donné au type spécifié, en utilisant le contexte et les informations de culture spécifiés.

ConvertTo(Object, Type)

Convertit l'objet de valeur donné en objet du type spécifié, à l'aide des arguments.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Convertit la valeur spécifiée en représentation sous forme de chaîne de culture dite indifférente, à l'aide du contexte déterminé.

ConvertToInvariantString(Object)

Convertit la valeur spécifiée en représentation sous forme de chaîne de culture dite indifférente.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Convertit la valeur donnée en représentation sous forme de chaîne, à l'aide du contexte et des informations de culture spécifiés.

ConvertToString(ITypeDescriptorContext, Object)

Convertit la valeur donnée en représentation sous forme de chaîne, à l'aide du contexte déterminé.

ConvertToString(Object)

Convertit la valeur spécifiée en représentation sous forme de chaîne.

CreateInstance(IDictionary)

Recrée un Object en fonction d'un jeu de valeurs de propriétés de l'objet.

CreateInstance(ITypeDescriptorContext, IDictionary)

Crée une instance du type auquel ce TypeConverter est associé, en utilisant le contexte spécifié, en fonction d’un ensemble de valeurs de propriétés de l’objet.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetConvertFromException(Object)

Retourne une exception à lever quand une conversion ne peut pas être effectuée.

GetConvertToException(Object, Type)

Retourne une exception à lever quand une conversion ne peut pas être effectuée.

GetCreateInstanceSupported()

Retourne une valeur indiquant si la modification d'une valeur de cet objet nécessite un appel à la méthode CreateInstance(IDictionary) pour créer une nouvelle valeur.

GetCreateInstanceSupported(ITypeDescriptorContext)

Retourne une valeur indiquant si la modification d’une valeur de cet objet nécessite un appel à CreateInstance(IDictionary) pour créer une valeur, en utilisant le contexte spécifié.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetProperties(ITypeDescriptorContext, Object)

Retourne une collection de propriétés pour le type de tableau spécifié par le paramètre de valeur, à l'aide du contexte déterminé.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Retourne une collection de propriétés pour le type de tableau spécifié par le paramètre de valeur, à l’aide du contexte et des attributs spécifiés.

GetProperties(Object)

Retourne une collection de propriétés pour le type de tableau spécifié par le paramètre de valeur.

GetPropertiesSupported()

Retourne une valeur indiquant si l'objet prend en charge les propriétés.

GetPropertiesSupported(ITypeDescriptorContext)

Retourne une valeur qui indique si cet objet prend en charge les propriétés en utilisant le contexte spécifié.

GetStandardValues()

Retourne une collection de valeurs standard à partir du contexte par défaut du type de données pour lequel ce convertisseur de type est conçu.

GetStandardValues(ITypeDescriptorContext)

Retourne une collection de valeurs standard pour le type de données compatible avec ce convertisseur de type quand un contexte de format est fourni.

GetStandardValuesExclusive()

Retourne une valeur indiquant si la collection de valeurs standard retournée par GetStandardValues() est une liste exclusive.

GetStandardValuesExclusive(ITypeDescriptorContext)

Retourne une valeur indiquant si la collection de valeurs standard retournée par GetStandardValues() est une liste exclusive des valeurs possibles, à l’aide du contexte spécifié.

GetStandardValuesSupported()

Retourne une valeur indiquant si cet objet prend en charge un jeu standard de valeurs qui peuvent être sélectionnées dans une liste.

GetStandardValuesSupported(ITypeDescriptorContext)

Retourne une valeur indiquant si cet objet prend en charge un jeu de valeurs standard pouvant être sélectionnées dans une liste, à l'aide du contexte spécifié.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IsValid(ITypeDescriptorContext, Object)

Indique par retour si l’objet de valeur donné est valide pour ce type et pour le contexte spécifié.

IsValid(Object)

Retourne une valeur indiquant si l'objet de valeur donné est valide pour ce type.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
SortProperties(PropertyDescriptorCollection, String[])

Trie une collection de propriétés.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi