我有一个控制台应用程序,它每天都会自动执行。在代码中,有一个使用 projectId 硬编码的变量字符串。问题是我需要使用 7 个不同的项目 ID 执行控制台 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:TEMPtest.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);
您不能这样做,因为每次关闭应用程序时,都会释放内存,并且会丢失所有变量值。
您可以:
- 将项目ID 作为命令行参数传递给应用程序。 您可以创建PowerShell脚本,该脚本使用不同的参数(ProjectID)运行程序5次。 您可以将ProjectID
- 存储在文本文件中/每次启动程序时,它都会读取文本文件以获取下一个ProjectID。
如果要隐藏项目 ID,可以:
- 使用 ProjectID 加密文本文件,并在控制台应用程序中对其进行解密。
- 您可以在 exe 文件中存储所有 5 个 ProjectId,并仅将下一个 ProjectId 的数量写入文本文件 - 例如,第 3 个。