Comment puis-je Convertir des Types à l'Exécution?

Mon scénario devrait être simple... le genre je veux convertir DE est TOUJOURS 'string'. Ce que je veux convertir... il pourrait être beaucoup de choses - ints, DateTimes, ... les cordes, etc.

Ce serait facile:

string valueToConvertFrom = "123";

int blah = Convert.ToInt32(valueToConvertFrom);

Cependant... je ne sais pas (jusqu'à l'exécution) que la valeur que j'ai besoin de les convertir à un 'Int' (ou autre). J'ai essayé ceci:

string valueToConvertFrom = "123";

Type convertToType = typeof(int);

object blah = Convert.ChangeType(valueToConvertFrom, convertToType);

Mais qui me donne l'erreur suivante: "l'Objet doit implémenter IConvertible."

Je ne veux pas avoir à faire une instruction de commutation et de l'appeler "Convertir.ToBlah" basé sur le nom du type de... des suggestions?

  • merci de rouvrir et de les ajouter à la réponse que vous avez trouvé, au cas où quelqu'un d'autre a le même ou un problème similaire dans l'avenir
  • La raison pourquoi j'ai fermé c'est parce que mon code a un bug... j'ai été tirer le mauvais champ initialement, et que le champ n'est pas de mettre en œuvre IConvertible. +1 pour les deux réponses... "Chaîne de classe implémente IConvertible, ce code DEVRAIT fonctionner" c'est vrai. Mais Asher la solution est bonne, comme j'ai appris quelque chose de nouveau (et c'est un très propre solution). Merci encore!