如何将变量动态分配给控制台应用程序 C#



我有一个控制台应用程序,它每天都会自动执行。在代码中,有一个使用 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 个。

相关内容

最新更新