Nie, to nie jest pytanie o generycznych.Aktywator.CreateInstance (ciąg) i Activator.CreateInstance <T>() różnica
Mam wzorzec Factory z kilkoma klasami z wewnętrznymi konstruktorami (nie chcę, aby były tworzone, jeśli nie przez fabrykę).
Mój problem polega na tym, że CreateInstance
kończy się niepowodzeniem z błędem "Brak zdefiniowanego bez parametrów konstruktora dla tego obiektu", chyba że przekażę "prawdziwy" parametr niepubliczny.
Przykład
// Fails
Activator.CreateInstance(type);
// Works
Activator.CreateInstance(type, true);
Chciałem zrobić fabrykę rodzajowe, aby to trochę prostsze, na przykład:
public class GenericFactory<T> where T : MyAbstractType
{
public static T GetInstance()
{
return Activator.CreateInstance<T>();
}
}
Jednak nie udało mi się znaleźć, jak przekazać, że "prawda" Parametr umożliwiający akceptowanie konstruktorów niepublicznych (wewnętrznych).
Czy coś mi umknęło, czy nie jest to możliwe?
Dlaczego nie definiować konstruktora bez parametrów z prywatnej zmiennej logicznej ustawionej na wartość true? – Vivek