He estado creando una instancia dinámicamente con Activator.CreateInstance. Sin embargo, está diciendo que el objeto no puede ser nulo en cada intento. Pegando el código a continuación. ¿Estoy haciendo algo mal?Activator.CreateInstance falla
¿Hay algún problema si
Activator.CreateInstance
reemplaza las declaraciones convencionales switch/case para determinar el tipo de objeto en el tiempo de ejecución? Gracias.
public abstract class Base
{
public abstract void Func();
}
public class Derived:Base
{
public override void Func()
{
MessageBox.Show("Derived First");
}
}
public class Derived2 : Base
{
public override void Func()
{
MessageBox.Show("Derived Second");
}
}
private void button1_Click(object sender, EventArgs e)
{
// I was trying to make use of the overladed version
// where it takes the Type as parameter.
BaseClass report =
(BaseClass) Activator.CreateInstance(Type.GetType("Derived"));
report.Func();
}
¿Por qué no usar typeof() en lugar de Type.GetType() ?? –