C# 在运行时构建对象

C# 在运行时构建对象,c#,.net,design-patterns,C#,.net,Design Patterns,我有许多需要创建并添加到数组中的对象。然而,下面的代码看起来很脏,很难长期维护。我的想法是,我应该将名称和值属性存储在一个表中,并在运行时构建每个comCommand对象 然而,我不确定做这件事的最佳方法是什么。。。反射、Activator.CreateInstance或某种对象工厂 提前谢谢 var engine = new comCommand() { commandName = "-e", commandValue = "PNetTNative" }; var outputFile =

我有许多需要创建并添加到数组中的对象。然而,下面的代码看起来很脏,很难长期维护。我的想法是,我应该将名称和值属性存储在一个表中,并在运行时构建每个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 };

创建一个命令构造函数(正如Kirk所建议的),并保持它的原样:多个comCommand(“-e”,“PNetTNative”)等调用


将其保留在代码中的原因是您得到了编译器时间类型和错误检查。。。是的,您可以在运行时执行(各种方法),但对于仅7个声明,最好将其保持在编译时。

如果您只声明了一个正确的构造函数,那么您就可以执行
新的comCommand(“-e”,“PNetTNative”)
。而且,小写类名是完全不标准的。真的应该是
ComCommand
。谢谢你的建议。我同意你的观点,但是comCommand类不是我自己实现的,我有7个声明。我只放了一小部分overall方法。谢谢你的建议,我还是喜欢把它保存在可以编译的代码中,只要项目的“列表”是静态的(在运行时不会改变)。从目前为止您给出的代码来看,它似乎是一个命令行工具的接口,因此您可以非常安全地直接在代码中实现它您得到了它。。。我正在创建一个运行此第三方应用程序的流程。我非常感谢你的建议。