TypeConverter Classe

Definizione

Rappresenta una soluzione unica per la conversione di tipi di valori in altri tipi, oltre che per l'accesso a sottoproprietà e valori standard.Provides a unified way of converting types of values to other types, as well as for accessing standard values and subproperties.

public ref class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
Public Class TypeConverter
Ereditarietà
TypeConverter
Derivato
Attributi

Esempi

Nell'esempio di codice seguente viene illustrato come creare un'istanza di un convertitore di tipi e associarla a una classe.The following code example shows how to create an instance of a type converter and bind it to a class. La classe che implementa il convertitore MyClassConverter,, deve ereditare TypeConverter dalla classe.The class implementing the converter, MyClassConverter, must inherit from the TypeConverter class.

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

Quando si dispone di una proprietà con un'enumerazione, verificare se un valore di enumerazione è valido prima di impostare la proprietà.When you have a property that has an enumeration, check to see whether an enumeration value is valid before setting the property. L'esempio di codice successivo richiede che sia stata MyPropertyEnum dichiarata un'enumerazione denominata.The next code example requires that an enumeration called MyPropertyEnum has been declared.

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

Un altro utilizzo del convertitore di tipi comune consiste nel convertire un oggetto in una stringa.Another common type converter usage is to convert an object to a string. Nell'esempio di codice seguente viene stampato il nome dell' Color oggetto archiviato nella variabile c.The following code example prints out the name of the Color stored in the variable c.

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

È anche possibile usare un convertitore di tipi per convertire un valore dal nome, come illustrato nell'esempio di codice successivo.You can also use a type converter to convert a value from its name, as shown in the next code example.

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)

Nell'esempio di codice seguente, è possibile usare un convertitore di tipi per stampare il set di valori standard supportati dall'oggetto.In the following code example, you can use a type converter to print out the set of standard values that the object supports.

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

Commenti

Il tipo più comune di convertitore è quello che converte in e da una rappresentazione di testo.The most common type of converter is one that converts to and from a text representation. Il convertitore di tipi per una classe è associato alla classe con un TypeConverterAttributeoggetto.The type converter for a class is bound to the class with a TypeConverterAttribute. A meno che questo attributo non venga sottoposto a override, tutte le classi che ereditano da questa classe utilizzano lo stesso convertitore di tipi della classe di base.Unless this attribute is overridden, all classes that inherit from this class use the same type converter as the base class.

Nota

Ai fini del sistema di tipo generale, non accedere direttamente a un convertitore di tipi.For general type system purposes, do not access a type converter directly. Al contrario, accedere al convertitore appropriato usando TypeDescriptor.Instead, access the appropriate converter by using TypeDescriptor. Per ulteriori informazioni, vedere gli esempi di codice forniti.For more information, see the code examples provided.

Tuttavia, quando si usa XAML, un processore XAML cerca direttamente TypeConverterAttribute l'oggetto, anziché TypeDescriptorpassare a.However, when using XAML, a XAML processor searches for the TypeConverterAttribute directly, instead of going through TypeDescriptor. Per i casi in cui si desidera TypeDescriptor un'istanza dal codice o quando si crea un'istanza condivisa nelle risorse WPF, è accettabile crearla direttamente senza riferimenti TypeDescriptor o altro supporto per reflection e sistema di tipi.For cases where you do want a TypeDescriptor instance from code, or where you create a shared instance in WPF resources, it is acceptable to construct it directly without referencing TypeDescriptor or other reflection and type system support.

Alle classi derivate da TypeConverter viene spesso fatto riferimento come parte di un processore XAML che converte un attributo o un valore di testo di inizializzazione dal markup (intrinsecamente una stringa) e genera un oggetto per una rappresentazione in fase di esecuzione.Classes derived from TypeConverter are often referenced as part of how a XAML processor converts an attribute or initialization text value from markup (which is inherently a string) and generates an object for a run-time representation. Gli autori di tipi personalizzati che intendono supportare un comportamento di conversione dei tipi per TypeConverter XAML in genere implementano una ConvertFrom classe che supporta il proprio comportamento univoco da una stringa.Custom type authors that intend to support a type conversion behavior for XAML typically implement a TypeConverter class that supports their own unique ConvertFrom behavior from a string. Questo comportamento consente la conversione del tipo dalla stringa fornita come valore di attributo XAML e fornisce un processore XAML con il supporto necessario per creare un oggetto dalla stringa, in modo che l'oggetto possa essere prodotto in un oggetto grafico analizzato.This behavior enables type conversion from the string provided as a XAML attribute value and provides a XAML processor with the support needed to create an object from the string, so that the object can be produced in a parsed object graph. I tipi personalizzati o i membri di tipi personalizzati vengono indicati TypeConverterAttribute applicando alle definizioni, con l'attributo che fa TypeConverter riferimento all'implementazione personalizzata.Custom types or members of custom types are indicated by applying TypeConverterAttribute to the definitions, with the attribute referencing the custom TypeConverter implementation. Per ulteriori informazioni, vedere la panoramica sui convertitori di tipi per XAML.For more information, see Type Converters for XAML Overview.

Note per gli eredi

Ereditare TypeConverter da per implementare i propri requisiti di conversione.Inherit from TypeConverter to implement your own conversion requirements. Quando si eredita da questa classe, è possibile eseguire l'override dei metodi seguenti:When you inherit from this class, you can override the following methods: -Per supportare la conversione di tipi personalizzati, CanConvertFrom(ITypeDescriptorContext, Type)eseguire CanConvertTo(ITypeDescriptorContext, Type)l'override dei ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) metodi,, ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)e.- To support custom type conversion, override the CanConvertFrom(ITypeDescriptorContext, Type), CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object), and ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) methods.

-Per convertire i tipi che devono creare nuovamente l'oggetto per modificarne il valore, eseguire CreateInstance(ITypeDescriptorContext, IDictionary) l' GetCreateInstanceSupported(ITypeDescriptorContext) override dei metodi e.- To convert types that must re-create the object to change its value, override the CreateInstance(ITypeDescriptorContext, IDictionary) and GetCreateInstanceSupported(ITypeDescriptorContext) methods.

-Per convertire i tipi che supportano le proprietà, GetProperties(ITypeDescriptorContext, Object, Attribute[]) eseguire GetPropertiesSupported(ITypeDescriptorContext) l'override dei metodi e.- To convert types that support properties, override the GetProperties(ITypeDescriptorContext, Object, Attribute[]) and GetPropertiesSupported(ITypeDescriptorContext) methods. Se la classe che si sta convertendo non dispone di proprietà ed è necessario implementare proprietà, è possibile utilizzare la TypeConverter.SimplePropertyDescriptor classe come base per l'implementazione dei descrittori di proprietà.If the class you are converting does not have properties, and you need to implement properties, you can use the TypeConverter.SimplePropertyDescriptor class as a base for implementing the property descriptors. Quando si eredita da TypeConverter.SimplePropertyDescriptor, è necessario eseguire l' GetValue(Object) override SetValue(Object, Object) dei metodi e.When you inherit from TypeConverter.SimplePropertyDescriptor, you must override the GetValue(Object) and SetValue(Object, Object) methods.

-Per convertire i tipi che supportano valori standard, eseguire GetStandardValues(ITypeDescriptorContext)l'override GetStandardValuesSupported(ITypeDescriptorContext) dei IsValid(ITypeDescriptorContext, Object) metodi, GetStandardValuesExclusive(ITypeDescriptorContext)e.- To convert types that support standard values, override the GetStandardValues(ITypeDescriptorContext), GetStandardValuesExclusive(ITypeDescriptorContext), GetStandardValuesSupported(ITypeDescriptorContext) and IsValid(ITypeDescriptorContext, Object) methods.


Il tipo derivato potrebbe essere contrassegnato come internal o private, ma è possibile creare un'istanza del tipo con la TypeDescriptor classe.Your derived type might be marked as internal or private, but an instance of your type can be created with the TypeDescriptor class. Non scrivere codice non protetto supponendo che il chiamante sia attendibile.Do not write insecure code by assuming the caller is trusted. Si supponga invece che i chiamanti possano creare istanze del tipo in attendibilità parziale.Assume instead that callers might create instances of your type in partial trust.

Per ulteriori informazioni sui convertitori di tipi per scopi generici (non XAML), [vedere Procedura: Implementare un convertitore](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2013/ayybcxe5(v=vs.120)) di tipi o una [conversione di tipi generalizzata](https://msdn.microsoft.com/library/49253ae6-7657-4810-82ab-1176a6feeada).For more information about type converters for general (non-XAML) purposes, see [How to: Implement a Type Converter](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2013/ayybcxe5(v=vs.120)) or [Generalized Type Conversion](https://msdn.microsoft.com/library/49253ae6-7657-4810-82ab-1176a6feeada).

Costruttori

TypeConverter()

Inizializza una nuova istanza della classe TypeConverter.Initializes a new instance of the TypeConverter class.

Metodi

CanConvertFrom(ITypeDescriptorContext, Type)

Restituisce un valore che indica se il convertitore può convertire un oggetto del tipo specificato nel tipo di questo convertitore, usando il contesto specificato.Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.

CanConvertFrom(Type)

Indica se questo convertitore può convertire un oggetto del tipo specificato nel tipo di questo convertitore.Returns whether this converter can convert an object of the given type to the type of this converter.

CanConvertTo(ITypeDescriptorContext, Type)

Restituisce un valore che indica se il convertitore può convertire l'oggetto nel tipo specificato usando il contesto specificato.Returns whether this converter can convert the object to the specified type, using the specified context.

CanConvertTo(Type)

Indica se questo convertitore può convertire l'oggetto nel tipo specificato.Returns whether this converter can convert the object to the specified type.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Converte l'oggetto indicato nel tipo di questo convertitore usando il contesto e le informazioni sulle impostazioni cultura specificati.Converts the given object to the type of this converter, using the specified context and culture information.

ConvertFrom(Object)

Converte il valore specificato nel tipo di questo convertitore.Converts the given value to the type of this converter.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Converte la stringa specificata nel tipo di questo convertitore, utilizzando le impostazioni cultura inglesi e il contesto specificato.Converts the given string to the type of this converter, using the invariant culture and the specified context.

ConvertFromInvariantString(String)

Converte la stringa specificata nel tipo di questo convertitore, utilizzando le impostazioni cultura invarianti.Converts the given string to the type of this converter, using the invariant culture.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Converte il testo specificato in un oggetto, utilizzando il contesto specificato e le informazioni sulle impostazioni cultura.Converts the given text to an object, using the specified context and culture information.

ConvertFromString(ITypeDescriptorContext, String)

Converte il testo specificato in un oggetto, utilizzando il contesto specificato.Converts the given text to an object, using the specified context.

ConvertFromString(String)

Converte il testo specificato in un oggetto.Converts the specified text to an object.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Converte l'oggetto valore indicato nel tipo specificato, usando il contesto e le informazioni sulle impostazioni cultura specificati.Converts the given value object to the specified type, using the specified context and culture information.

ConvertTo(Object, Type)

Converte l'oggetto valore specificato nel tipo specificato, utilizzando gli argomenti.Converts the given value object to the specified type, using the arguments.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Converte il valore specificato in una rappresentazione in formato stringa indipendente dalle impostazioni cultura, utilizzando il contesto specificato.Converts the specified value to a culture-invariant string representation, using the specified context.

ConvertToInvariantString(Object)

Converte il valore specificato in una rappresentazione in formato stringa indipendente dalle impostazioni cultura.Converts the specified value to a culture-invariant string representation.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Converte il valore specificato in una rappresentazione in formato stringa, utilizzando il contesto specificato e le informazioni sulle impostazioni cultura.Converts the given value to a string representation, using the specified context and culture information.

ConvertToString(ITypeDescriptorContext, Object)

Converte il valore specificato in una rappresentazione in formato stringa, utilizzando il contesto specificato.Converts the given value to a string representation, using the given context.

ConvertToString(Object)

Converte il valore specificato in una rappresentazione in formato stringa.Converts the specified value to a string representation.

CreateInstance(IDictionary)

Ricrea un oggetto Object in base a un set di valori di proprietà dell'oggetto.Re-creates an Object given a set of property values for the object.

CreateInstance(ITypeDescriptorContext, IDictionary)

Crea un'istanza del tipo a cui questo oggetto TypeConverter è associato, usando il contesto specificato, dato un set di valori di proprietà per l'oggetto.Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetConvertFromException(Object)

Restituisce un'eccezione da generare quando non è possibile eseguire una conversione.Returns an exception to throw when a conversion cannot be performed.

GetConvertToException(Object, Type)

Restituisce un'eccezione da generare quando non è possibile eseguire una conversione.Returns an exception to throw when a conversion cannot be performed.

GetCreateInstanceSupported()

Restituisce se la modifica di un valore su questo oggetto richiede una chiamata al metodo CreateInstance(IDictionary) per creare un nuovo valore.Returns whether changing a value on this object requires a call to the CreateInstance(IDictionary) method to create a new value.

GetCreateInstanceSupported(ITypeDescriptorContext)

Indica se la modifica di un valore di questo oggetto richiede la chiamata del metodo CreateInstance(IDictionary) per creare un nuovo valore utilizzando il contesto specificato.Returns whether changing a value on this object requires a call to CreateInstance(IDictionary) to create a new value, using the specified context.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetProperties(ITypeDescriptorContext, Object)

Restituisce un insieme di proprietà per il tipo di matrice specificato dal parametro del valore utilizzando il contesto specificato.Returns a collection of properties for the type of array specified by the value parameter, using the specified context.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Restituisce un insieme di proprietà per il tipo di matrice specificato dal parametro del valore utilizzando il contesto e gli attributi specificati.Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes.

GetProperties(Object)

Restituisce un insieme di proprietà per il tipo di matrice specificato dal parametro del valore.Returns a collection of properties for the type of array specified by the value parameter.

GetPropertiesSupported()

Indica se questo oggetto supporta le proprietà.Returns whether this object supports properties.

GetPropertiesSupported(ITypeDescriptorContext)

Indica se questo oggetto supporta le proprietà, utilizzando il contesto specificato.Returns whether this object supports properties, using the specified context.

GetStandardValues()

Restituisce un insieme di valori standard dal contesto predefinito del tipo di dati per il quale è stato progettato questo convertitore di tipi.Returns a collection of standard values from the default context for the data type this type converter is designed for.

GetStandardValues(ITypeDescriptorContext)

Restituisce un insieme di valori standard del tipo di dati per il quale è stato progettato questo convertitore di tipi, quando viene fornito un contesto di formato.Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.

GetStandardValuesExclusive()

Indica se l'insieme di valori standard restituiti dal metodo GetStandardValues() rappresenta un elenco esclusivo.Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list.

GetStandardValuesExclusive(ITypeDescriptorContext)

Indica se l'insieme di valori standard restituiti dal metodo GetStandardValues() rappresenta un elenco esclusivo di valori possibili, utilizzando il contesto specificato.Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list of possible values, using the specified context.

GetStandardValuesSupported()

Indica se questo oggetto supporta un gruppo standard di valori selezionabili da un elenco.Returns whether this object supports a standard set of values that can be picked from a list.

GetStandardValuesSupported(ITypeDescriptorContext)

Indica se questo oggetto supporta un insieme standard di valori selezionabili da un elenco, utilizzando il contesto specificato.Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsValid(ITypeDescriptorContext, Object)

Indica se l'oggetto valore specificato è valido per questo tipo e per il contesto specificato.Returns whether the given value object is valid for this type and for the specified context.

IsValid(Object)

Indica se l'oggetto valore specificato è valido per questo tipo.Returns whether the given value object is valid for this type.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
SortProperties(PropertyDescriptorCollection, String[])

Ordina un insieme di proprietà.Sorts a collection of properties.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a

Vedi anche