Считывая существующий код на работе, я задавался вопросом, почему это может сработать. У меня есть класс, определенный в сборке:
[Serializable]
public class A
{
private readonly string _name;
private A(string name)
{
_name = name;
}
}
И в другой сборке:
public void f(Type t) {
object o = Activator.CreateInstance(t);
}
и этот простой вызов f(typeof(A))
Я ожидал исключения из-за отсутствия конструктора без параметров, потому что AFAIK, если объявлен ctor, компилятор не должен генерировать стандартный публичный конструктор без параметров.
Этот код работает под .NET 2.0.
[РЕДАКТИРОВАТЬ] Извините, но я неправильно понял фактический код... Образец, который я предоставил, не иллюстрирует его. Я принял ответ JonH, потому что он предоставил хорошую информацию.