Здравствуйте, Popsodav, Вы писали:
P>Такая ситуация. Есть функция, в неё передаётся класс Type от какого-то класса.
P>Можно ли в этой функции на основе данных Type создать объект передаваемого класса?
Если есть открытый конструктор без параметоров (в т.ч. value-типы):
System.Activator.CreateInstance(type);
Если неизвестно, является ли конструктор без параметоров открытым:
System.Activator.CreateInstance(type, true);
Если есть конструктор с параметрами: соответствующие перегруженные версии метода Activator.CreateInstance.
Если неизвестно, какие конструкторы есть у класса, то все равно можно создать неинициализированный экземпляр (выделена память, заполнена нулями, но никакой конструктор не вызван):
System.Runtime.Serialization.FormatterServices.GetUninitializedObject(type);
Последним методом пользуются стандартные классы, которые занимаются десериализацией. Им необходимо создать "заготовку" объекта, после чего заполнить значения его полей.