【发布时间】:2015-02-06 13:59:51
【问题描述】:
我有一个控制台应用程序,它每天都会自动执行。在代码中,有一个使用 projectId 硬编码的变量字符串。问题是我需要使用 7 个不同的 projectID 执行控制台 7 次。我不能将它们作为数组输入,因为这是 Web 服务,并且该方法只接受字符串类型。 有没有办法调用控制台应用程序,第一次执行然后转到第二个 projectID 变量等等?
这里有我的应用程序的代码。
string ProjectID = "5c14684f-32a5";
var dt1 = DateTime.Today;
var dt2 = DateTime.Today.AddDays(1).AddSeconds(-1);
string OutputType = "caption";
string currentLanguage = "en-US";
string DateFormatStr = "MM/dd/yy hh:mm:ss tt";
string DateFormatFrom = dt1.ToString("MM/dd/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
string FilloutDateTo = dt2.ToString("MM/dd/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
string subjetID = "";
string ConditionID = "";
//DateTime
String path = @"C:\TEMP\test.zip";
String finalPath = Path.Combine(Path.GetDirectoryName(path),
Path.GetFileNameWithoutExtension(path)
+ DateTime.Now.ToString("_yyyyMMdd HHmms")
+ Path.GetExtension(path));
byte[] MyBinFiles = db.ResponseFile(ProjectID, OutputType, currentLanguage,
DateFormatStr, DateFormatFrom, FilloutDateTo, subjetID, ConditionID);
System.IO.File.WriteAllBytes(finalPath, MyBinFiles);
【问题讨论】:
-
foreach (string ProjectID in {"proj1", "proj2", "etc"})?或者您是否希望在每次回发时在下一个 ProjectID 上重新运行该流程? -
您可以让输入为每个项目的逗号分隔字符串,然后将该字符串拆分为 Web 服务内的一个数组并循环处理结果。
-
嗨,它在 3 分钟后运行一个新进程以确保文件下载良好
-
您可能正在寻找传递/处理命令行参数,但可能不是...请澄清命令行参数是否是您正在寻找的或者为什么它不适用于您的情况。
-
嗨,我需要自动执行,无需用户操作,所以如果命令行参数有效,我可以检查。问题是 projectId 已经输入到代码中,所以也许一种方法可以放置一个空字符串,然后使用命令输入 7 projectID?
标签: c# string web-services variables dynamic