Я работаю над приложением WinForms.
У меня есть группа классов тестов, каждый класс выполняет разные вещи, но 80% классов используют почти идентичные конструкторы.Я использую рефлексию для динамического создания экземпляров классов во время выполнения из List, там могут быть десятки тестов одного и того же типа.
currentTest = (ISystemTest)Activator.CreateInstance(classtype,
gui,
param1,
param2,
param3,
param4,
currentProgressUpdater);
, а затем запустить экземпляр через Action.
Как я уже сказал, некоторые конструкторы имеют немного другую подпись.Раньше я работал с операторами switch, но с помощью отражения становится проще поддерживать.
Чтобы решить проблему с различными сигнатурами конструктора, у меня есть какое-то творческое решение или создать большой конструктор со значениями по умолчанию для теста, которыйМне не нужны определенные данные.
Поэтому, если у вас есть творческое решение этой проблемы, я бы хотел услышать ее.
Пример конструкторов:
ClassName(gui, param1, param2, param3, progressUpdater)
=> около 80% текущих испытаний
ClassName(gui, param1,param4, param5)
=> около 10% текущих испытаний
ClassName(param4, param6)
=>10% текущих тестов
типы - это пользовательские классы, а не строки или целые числа