Mi escenario debe ser simple ... el tipo que quiero convertir DE es SIEMPRE 'cadena'. Lo que quiero convertir a ... podría ser muchas cosas - enteros, DateTime, ... cuerdas, etc.¿Cómo puedo convertir tipos en tiempo de ejecución?
Esto sería fácil:
string valueToConvertFrom = "123";
int blah = Convert.ToInt32(valueToConvertFrom);
Sin embargo ... No sé (hasta el tiempo de ejecución) que el valor que necesito convertir es un 'Int' (o lo que sea). He intentado esto:
string valueToConvertFrom = "123";
Type convertToType = typeof(int);
object blah = Convert.ChangeType(valueToConvertFrom, convertToType);
Pero eso me da el siguiente error: "objeto debe implementar IConvertible."
No quiero tener que hacer una declaración de cambio y llamar "Convert.ToBlah" en función del nombre del tipo ... alguna sugerencia?
favor vuelva a abrir y añadir la respuesta que ha encontrado, por si alguien tiene otra cosa el mismo o un problema similar en el futuro –
La razón por la que cerré esto es porque mi código tenía un error en él ... Inicialmente estaba sacando del campo incorrecto, y ese campo no implementó IConvertible. +1 para ambas respuestas ... "La clase String implementa IConvertible, este código simplemente DEBE funcionar" es cierto. Pero la solución de Asher es genial, ya que aprendí algo nuevo (y es una solución muy limpia). ¡Gracias de nuevo! –