Динамическое создание типа C#
Я смотрю, чтобы создать экземпляр объекта во время выполнения, имеющего его тип в строке, а также его значение в строке. например:
string myType = "System.Int32";
string myValue = "3";
Я пытаюсь создать экземпляр myType и привести / назначить myValue в только что созданный экземпляр.
Я посмотрел в Activator.CreateInstance:
object objectInstance = Activator.CreateInstance(Type.GetType(myType));
Но я не могу передать свое значение своему экземпляру (может быть что угодно: int16/32/64, double, bool, нестандартный тип...).
Спасибо за помощь
2 ответа
Решение
Вам нужно получить объект типа, а затем использовать Convert
учебный класс:
string myType = "System.Int32";
Type type=Type.GetType(myType)
string myValue = "3";
object convertedValue = Convert.ChangeType(myValue, type);
Это работает только для типов значений...
var t = Type.GetType("System.Int32");
object x = Activator.CreateInstance(t);
if (t.IsValueType)
x = Convert.ChangeType("2", t);