Estas formas de implementar patterns de "factory" usan siempre reflection de .net.
Incluir:
using System.Reflection;
Lo esencial quizas es que todos los objetos que creemos tengan una clase Base comun, para poder asignarselos y luego poder castearlos a la clase que queremos.
Type tipoObjeto = typeof(ClaseaInstanciar)
ClaseBase c = (ClaseBase)Assembly.GetExecutingAssembly().CreateInstance(tipoObjeto.FullName);
Otra forma es (aparentemente mas lenta):
string strClase = "NombreDeClaseACrear";
Type tipoClase = Type.GetType(strClase);
ClaseBase c = (ClaseBase) t.InvokeMember("ctor", BindingFlags.CreateInstance, null, null, null);
---------------------------------------
Ejemplo Concreto:
class Persona
{
string nombre="";
}
class Trabajador : Persona
{
string IDTrabajador = "";
}
private void llamada()
{
Type tipoObjeto = typeof(Trabajador);
Persona c = (Persona)Assembly.GetExecutingAssembly().CreateInstance(tipoObjeto.FullName);
}