У меня есть приложение WPF, в котором есть две поля со списком, одна с тем, что я называю FileType
, и один с Actions
(добавление, изменение, удаление и т. Д.). Каждый FileType
имеет соответствующий класс. То, что я пытаюсь сделать, это, например, если FileTypeA
выбран и действие Add
, то я хочу сделать что-то вдоль этих линий:Класс и метод вызова из двух строк
void myMethod(string FileType, string Action)
{
//using reflection find class from the FileType string, and call method Action
var x = new FileTypeA();
x.Add();
}
если пользователь выбирает FileTypeB
и Delete
затем созданный объект и метод соответственно, изменится. Я думаю, что это возможно с помощью рефлексии, но я пытаюсь выяснить, есть ли лучший способ использовать, возможно, общий класс? так как все эти классы FileType
очень похожи.
Подумайте об интерфейсах и фабриках. –
@RoyDictus Я знаю, как реализовать фабрику, чтобы вернуть правильный объект, но как использовать его для вызова метода? можете ли вы указать мне в правильном направлении? – SOfanatic
вы не используете фабрику для вызова метода, вы просто определяете интерфейс, например 'IFileType', который определяет все действия, а затем, когда у вас есть экземпляр' IFileType', вы можете вызвать его метод 'Add', и т. д. –