Как преобразовать строку в любой тип - PullRequest
56 голосов
/ 27 мая 2010

Я хочу преобразовать строку в универсальный тип

У меня есть это:

string inputValue = myTxtBox.Text;    

PropertyInfo propInfo = typeof(MyClass).GetProperty(myPropertyName);
Type propType = propInfo.PropertyType;

object propValue = ?????

Я хочу преобразовать inputString в тип этого свойства, чтобы проверить, совместимо ли оно как я могу это сделать?

ткс

Ответы [ 3 ]

94 голосов
/ 27 мая 2010
using System.ComponentModel;

TypeConverter typeConverter = TypeDescriptor.GetConverter(propType);
object propValue = typeConverter.ConvertFromString(inputValue);
14 голосов
/ 27 мая 2010

Попробуйте Convert.ChangeType

object propvalue = Convert.ChangeType(inputValue, propType);
3 голосов
/ 27 мая 2010

Не думаю, что я понимаю, что вы пытаетесь архивировать, но .. вы имеете в виду динамический кастинг?Примерно так:

 TypeDescriptor.GetConverter(typeof(String)).ConvertTo(myObject, typeof(Program));

Ура.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...