передать generic через строку в <T>
От: Hermitap Украина  
Дата: 04.01.22 16:14
Оценка:
Доброго всем.

Есть такой кусок кода.

   static void Main(string[] args)
        {
            CallClass<myclass1>();        
        }

        static void CallClass<T>() where T: new()
        {
            T cls = new T();
            ShowName((IInterface)cls);
        }


То что нужно тут для меня работает. (Это тестовый набросок)

Можно ли вызвать CallClass<myclass1>(); но myclass1 (нужный мне класс) как то передать через строку?
У меня таких классов будет много. И данные я буду брать из бд в зависимости от поля вызывать CallClass с нужным классом.
Можно конечно написать SWSITCH и в зависимости от данных вызвать типа такого
 switch
    case 1  CallClass<myclass1>();   
    case 2  CallClass<myclass2>();   
    case 3  CallClass<myclass3>();   
    case 4  CallClass<myclass4>();   
    .....

+Я умею динамически вызывать нужный класс через System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("ConsoleApp6.myclass1");
и что нужно работает.

Но хотелось бы как то через CallClass<"T"> так аккуратней и красивей код

Спасибо.
Отредактировано 04.01.2022 16:43 Hermitap . Предыдущая версия . Еще …
Отредактировано 04.01.2022 16:17 Hermitap . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.