Я не знаю asp.net, но я думаю, что мог бы объяснить вашу ошибку.
Когда вы используете typeof(myobj)
, это выражение возвращает экземпляр System.Type
, а не ссылку на сам тип ссылкив коде, например Int.Parse()
.
Экземпляр System.Type
является представлением информации о типе времени выполнения.Это своего рода «мета» объект, не то же самое, что ссылка на тип, который вам нужен в коде.
Если вы хотите вызвать определенный метод через System.Type
объект, вы должны сначала найти его.Этот метод вызова называется «Отражение».Я рекомендую вам не делать этого, потому что это нелегко, нуждается в шаблоне (?) И не требуется в большинстве случаев, когда вы знаете свой тип. doc
Я просто рекомендую сначала привести тип цели и просто вызвать статический метод типа (как это сделал другой ответ).или использовать TryParse?
(код не проверен на компиляцию)
dynamic a = "123";
string a_casted = 123 as string;
if (a_casted == null) { return; }
int a_parsed = Int.Parse(a_casted);