Dado el siguiente código de ejemplo;Activator.CreateInstance (...) no encuentra el constructor con parámetros
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)
{
}
}
Recibo el siguiente error;
MissingMethodException: Constructor del tipo 'CreateInstanceCtorIssue.MyChildClass' not found.
Sin embargo, si agrego un constructor sin parámetros, crea los objetos OK.
Estoy tratando de averiguar por qué el parámetro que estoy suministrando a CreateInstance no hace que encuentre el constructor correcto. ¿Alguien tiene alguna idea?
Esto debería funcionar: 'Activator.CreateInstance (O, (objeto) null)' – Alex