В качестве примера возьмем следующий класс:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Затем я хочу создать экземпляр этого типа, используя отражение:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Обычно это сработает, однако, поскольку SomeTypeне определен конструктор без параметров, вызов вызывает Activator.CreateInstanceисключение типа MissingMethodExceptionс сообщением « Для этого объекта не определен конструктор без параметров ». Есть ли альтернативный способ по-прежнему создать экземпляр этого типа? Было бы отстойно добавлять конструкторы без параметров ко всем моим классам.
FormatterServices.GetUninitializedObjectне позволять создавать неинициализированную строку. Вы можете получить исключение:System.ArgumentException: Uninitialized Strings cannot be created.помните об этом.