Создание универсального объекта на основе переменной типа [duplicate]

На этот вопрос уже есть ответ здесь:

Передайте Instantiated System.Type как параметр типа для универсального класса 5 ответов

Мне нужно создать универсальный объект на основе типа, который хранится в базе данных. Как я могу достичь этого? Код ниже (который не будет компилироваться) объясняет, что я имею в виду:

string typeString = GetTypeFromDatabase(key);
Type objectType = Type.GetType(typeString);

//This won't work, but you get the idea!
MyObject<objectType> myobject = new MyObject<objectType>();

Можно ли сделать такие вещи?

Спасибо

Ответы на вопрос(2)

если мне нужно вызвать функцию myObject, например

Type type = typeof(MyObject<>).MakeGenericType(objectType);
object myObject = Activator.CreateInstance(type);
myobject.SetValue("1212");
Решение Вопроса
Type type = typeof(MyObject<>).MakeGenericType(objectType);
object myObject = Activator.CreateInstance(type);

Type.GetType(string) проверяет только исполняющую сборку и несколько системных сборок; он не сканирует все Если вы используете имя с указанием сборки, у вас должно быть все в порядке - в противном случае вам может потребоваться получитьAssembly во-первых, и использоватьsomeAssembly.GetType(string).

 Mark Hurd25 июл. 2010 г., 09:06
@Charlie Вы, вероятно, работали над этим за прошедший год, но для полноты нет, вы можете использовать другие конструкторы сActivator.CreateInstance(Type, params Object[]).
 Charlie05 июн. 2009 г., 17:03
Должен ли создаваемый объект иметь конструктор без аргументов?

Ваш ответ на вопрос