Строительные объекты во время выполнения - PullRequest
1 голос
/ 24 октября 2010

У меня есть ряд объектов, которые мне нужно создать и добавить в массив.Однако приведенный ниже код кажется грязным и сложным в долгосрочной перспективе.Я думаю о том, что я должен сохранить свойства Name и Value в таблице и построить каждый объект comCommand во время выполнения.

Однако я не совсем уверен, как лучше всего это сделать ..Отражение, Activator.CreateInstance или какая-то фабрика объектов?

Заранее спасибо.

 var engine = new comCommand() { commandName = "-e", commandValue = "PNetTNative" };
 var outputFile = new comCommand() { commandName = "-f", commandValue = OutputFile };
 var groupSize = new comCommand() { commandName = "-GroupSizeParamInput1ParamsIn", commandValue = GroupSize };
 var pagesPerSheet = new comCommand() { commandName = "-PagesPerSheetParamInput1ParamsIn", commandValue = PagesPerSheet };
 var outputFileName = new comCommand { commandName = "-OutputFileNameParamInput1ParamsIn", commandValue = OutputFileName };
 var duplex = new comCommand { commandName = "-DuplexParamInput1ParamsIn", commandValue = Duplex };
 var processId = new comCommand { commandName = "-ProcessIDParamInput1ParamsIn", commandValue = ProcessID };

 var request = new comRunWorkFlowReq(); 
 request.command = new[] { engine, outputFile, groupSize, pagesPerSheet, outputFileName, duplex, processId };

1 Ответ

1 голос
/ 24 октября 2010

Создайте конструктор команд (как предложил Кирк) и сохраните его как есть: несколько вызовов comCommand ("- e", "PNetTNative") и т. Д.

Причина сохранения его в коде заключается в том, что вы получаетеПроверка типов во время компиляции и проверка ошибок ... Да, вы можете сделать это во время выполнения (различными методами), но всего для 7 объявлений лучше хранить их во время компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...