Динамическое создание типа 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);
Другие вопросы по тегам