switch(input)
{
case optionA:
return Activator.CreateInstance(typeof(Bla));
case optionB:
return Activator.CreateInstance(typeof(Blb));
}
$ 0,02
Любые дополнительные параметры к конструктору Bla / Blo могут быть добавлены
Activator.CreateInstance(typeof(Bla), 1, 2 ,3);
На самом деле, он принимает массив параметров params.Поэтому, если вам нужно было передать их динамически,
object[] dynparams = new object[] { 1,2, "more", 4.5, new List<int>() };
...
return Activator.CreateInstance(typeof(Bla), dynparams);
Существует множество других перегрузок, прочитайте о них здесь
Теперь я не знаю ни одного из ваших названий типов,но вы сможете сделать
Object obj = Activator.CreateInstance(null, "Namespace1.MyClass1", dynparams);