В качестве примера возьмем следующий класс:
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.
помните об этом.