Exportar (0) Imprimir
Expandir todo

TypeConverter (Clase)

Proporciona un modo unificado para convertir los tipos de valores en otros tipos, así como para obtener acceso a valores estándar y a subpropiedades.

Espacio de nombres: System.ComponentModel
Ensamblado: System (en system.dll)

[ComVisibleAttribute(true)] 
public class TypeConverter
/** @attribute ComVisibleAttribute(true) */ 
public class TypeConverter
ComVisibleAttribute(true) 
public class TypeConverter

El tipo de convertidor más común es el que convierte a y desde una representación de texto. El convertidor de tipos de una clase está enlazado a la clase con TypeConverterAttribute. A menos que se reemplace este atributo, todas las clases que heredan de esta clase utilizan el mismo convertidor de tipos que la clase base.

NotaNota

Nunca obtenga acceso directo a un convertidor de tipos. En lugar de ello, obtenga acceso al convertidor apropiado utilizando TypeDescriptor. Para obtener más información, vea los ejemplos de código proporcionados.

Notas para los herederos Herede de TypeConverter para implementar sus propios requisitos de conversión. Cuando herede de esta clase, podrá reemplazar los siguientes métodos:

NotaNota

Aunque el tipo derivado esté marcado como internal o private, se puede crear una instancia del mismo con la clase TypeDescriptor. No escriba código inseguro pensando que el llamador es de confianza. Por el contrario, suponga que los llamadores pueden crear instancias de su tipo si la confianza es parcial.

Para obtener más información sobre los convertidores de tipos, vea Cómo: Implementar un convertidor de tipos o Conversión de tipos generalizada.
NotaNota

El atributo HostProtectionAttribute aplicado a esta clase tiene el siguiente valor para la propiedad Resources: SharedState. HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician al hacer doble clic en un icono, escribir un comando o introducir una dirección URL en un explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación de SQL Server y atributos de protección del host.

En el ejemplo de código siguiente se muestra cómo se crea una instancia de un convertidor de tipos y se enlaza a una clase. La clase que implementa el convertidor, MyClassConverter, debe heredarse de la clase TypeConverter.

[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
}

/** @attribute TypeConverter(MyClassConverter.class)
 */
public class MyClass
{
    // Insert code here.
} //MyClass 

Cuando hay una propiedad que tiene una enumeración, compruebe si es válido un valor de enumeración antes de establecer la propiedad. En el ejemplo de código siguiente es necesario que se haya declarado una enumeración denominada MyPropertyEnum.

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.
    }
 }

/** @property 
 */
public void set_MyProperty(MyPropertyEnum value)
{
    // Checks to see if the value passed is valid.
    if (!(TypeDescriptor.GetConverter(MyPropertyEnum.class.ToType()).
        IsValid(value))) {
        throw new ArgumentException();
    }
    // The value is valid. Insert code to set the property.
} //set_MyProperty

El convertidor de tipos suele utilizarse también para convertir un objeto a una cadena. En el ejemplo de código siguiente se imprime el nombre de la estructura Color almacenada en la variable c.

Color c = Color.Red;
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));

Color c = Color.get_Red();
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));

Se puede utilizar asimismo un convertidor de tipos para convertir un valor desde su nombre, tal como se muestra en el siguiente ejemplo de código.

Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");

Color c = (Color)(TypeDescriptor.GetConverter(Color.class.ToType()).
    ConvertFromString("Red"));

En el ejemplo de código siguiente puede utilizar un convertidor de tipos para imprimir el conjunto de valores estándar compatibles con el objeto.

foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
 }

IEnumerator e = TypeDescriptor.GetConverter(Color.class.ToType()).
    GetStandardValues().GetEnumerator();
while (e.MoveNext()) {
    Color c = (Color)e.get_Current();
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
}

System.Object
  System.ComponentModel.TypeConverter
     Clases derivadas

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft