Учитывая следующий пример кода;
class Program
{
static void Main(string[] args)
{
var results = GetChildren().ToList();
}
static IEnumerable<MyBaseClass> GetChildren()
{
return Assembly.GetExecutingAssembly()
.GetTypes()
.Where(t => t.BaseType == typeof(MyBaseClass))
.Select(o => (MyBaseClass)Activator.CreateInstance(o, null));
}
}
abstract class MyBaseClass
{ }
class MyChildClass : MyBaseClass
{
public MyChildClass(object paramOne)
{
}
}
Я получаю следующую ошибку:
MissingMethodException: Конструктор типа 'CreateInstanceCtorIssue.MyChildClass'не найдено.
Однако, если я добавляю конструктор без параметров, он создает объекты ОК.
Я пытаюсь понять, почему параметр, к которому я добавляю CreateInstance, не приводит к тому, что он находит правильный конструктор.У кого-нибудь есть идеи?