@DarkByte2015

Convert string to Type?

Мне надо через рефлексию сконвертировать строку в объект неизвестного заранее типа (получаю объект Type). Есть вот такое решение:

var conv = TypeDescriptor.GetConverter(prop.PropertyType);
var value = conv.ConvertFromString(strval);


И оно работает, но когда ему попадается decimal или float то все рушится, потому что в строке стоит точка, а он вероятно ждет запятую... Как быть?

P.S. У метода ConvertFromString есть правда еще вот такая перегрузка:

public object ConvertFromString(
	ITypeDescriptorContext context,
	CultureInfo culture,
	string text
)


Возможно это и будет решением, только я не знаю как ее использовать...
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ответы на вопрос 2
@artemt
Full-stack developer
В смысле, как использовать culture? Заполняешь его необходимыми настройками и передаёшь в метод.

CultureInfo culture = CultureInfo.CreateSpecificCulture("en-EN");
culture.NumberFormat.NumberDecimalSeparator = ".";
Ответ написан
@rare
Я для аналогичной задачи использую Convert.ChangeType.
https://msdn.microsoft.com/ru-ru/library/system.co...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы