Weź następującą klasę jako przykład:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Następnie chcę utworzyć instancję tego typu za pomocą odbicia:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Zwykle to zadziała, jednak ponieważ SomeType
nie zdefiniowano konstruktora bez parametrów, wywołanie Activator.CreateInstance
wyrzuci wyjątek typu MissingMethodException
z komunikatem „ Nie zdefiniowano konstruktora bez parametrów dla tego obiektu ” . Czy istnieje alternatywny sposób tworzenia instancji tego typu? Byłoby trochę nieciekawe, gdyby dodać konstruktory bez parametrów do wszystkich moich klas.
FormatterServices.GetUninitializedObject
nie pozwala na utworzenie niezainicjowanego ciągu. Możesz otrzymać wyjątek:System.ArgumentException: Uninitialized Strings cannot be created.
pamiętaj o tym.