jueves, 2 de octubre de 2008

Casteo Dinámico de tipos (type)

Estaba haciendo un código con un toque de reflection.
Necesitaba un casteo entre tipos que se iban a resolver solamente en tiempo de ejecución, de modo que el casteo común y corriente no me servía. Después de dar un par de vueltas fuí a los mas simple, la clase Convert y su método ChangeType, tal como aparece a continuación.

string tipo = "System.Int16";
object objeto1 = "345";
object objeto2 = Convert.ChangeType(objeto1, Type.GetType(tipo));
Type t = objeto2.GetType(); // y aca tengo el tipo del system.int16 nuevamente

Comentarios:
objeto.GetType devuelve el tipo de un objeto existente.
gettype(type) devuelve el tipo de un tipo indicado especificamente
y
Type.GetType(String) devuelve el tipo que le indicamos en el string.

No hay comentarios.: