Tworzenie obiektu na podstawie identyfikatora (lub nazwy)

Mam klasę abstrakcyjną, którą dziedziczy wiele klas potomnych:

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

Pracuję nad tą pętlą:

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);
                }

Teraz łańcuch item.type będzie zależał od klasy podrzędnej, która musi zostać utworzona. Ponieważ wszystkie moje klasy potomne dziedziczą moją klasę bazową, bardzo powtarzalne byłoby wywołanie metody .Process () w każdej instrukcji case. Chcę rzucić obiekt „przeszukiwacz” na instancję klasy podrzędnej i wywołać przeszukiwacz.Process () na końcu instrukcji switch, jak pokazano w komentarzach. Jak mogę to zrobić?

questionAnswers(5)

yourAnswerToTheQuestion