Creando un objeto desde un ID (o nombre)

Tengo una clase abstracta que heredan muchas clases secundarias:

  public abstract class CrawlerBase
    {
        public abstract void Process(string url);
    }

Estoy trabajando en este bucle:

foreach (var item in result)
                {
                    object crawler = null;

                    switch (item.Type)
                    {
                        case "Trials":
                            var t = new Trials(); 
                            ct.Process(item.URL); //repetitive code.  
                            break;

                        case "Coverage":
                            var c = new Coverage();
                            c.Process(item.URL); //repetitive code.
                            break;
                        default:
                            break;
                    }

                   // crawler.Process(item.URL);
                }

Ahora la cadena item.type dependerá de qué clase hija necesita ser instanciada. Como todas las clases de mi hijo heredan mi clase base, sería muy repetitivo llamar a .Process () en cada declaración de caso. Quiero convertir el objeto "rastreador" a la clase secundaria que se está creando, y llamar al rastreador.Proceso () al final de la instrucción de cambio, como se muestra en los comentarios. ¿Cómo puedo hacer esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta