Mój scenariusz powinien być prosty ... typ, który chcę przekonwertować OD jest ZAWSZE "ciąg". Co chcę przekonwertować do ... może być wiele rzeczy - ints, DateTimes, ... struny itdJak konwertować typy w środowisku wykonawczym?
To byłoby proste:
string valueToConvertFrom = "123";
int blah = Convert.ToInt32(valueToConvertFrom);
Jednak ... nie wiem (do czasu wykonania), że wartość, którą muszę przekonwertować, to "Int" (lub cokolwiek innego). Próbowałem tego:
string valueToConvertFrom = "123";
Type convertToType = typeof(int);
object blah = Convert.ChangeType(valueToConvertFrom, convertToType);
Ale to daje mi następujący błąd: "Obiekt musi wdrożyć IConvertible."
Nie chcę, aby wykonać instrukcję zmiany i zadzwonić "Convert.ToBlah" w oparciu o nazwę typu ... wszelkie sugestie?
proszę ponownie otworzyć i dodać odpowiedź, że znalazłeś, w przypadku, ktoś inny ma ten sam lub podobny problem w przyszłości –
Powodem, dla którego to zamknąłem, jest to, że mój kod zawiera błąd ... Początkowo pobierałem dane z niewłaściwego pola, a to pole nie implementowało IConvertible. +1 dla obu odpowiedzi ... "Klasa String implementuje IConvertible, ten kod po prostu POWINI pracować" to prawda. Ale rozwiązanie Ashera jest wspaniałe, ponieważ nauczyłem się czegoś nowego (i jest to bardzo czyste rozwiązanie). Dzięki jeszcze raz! –