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

时间:2014-12-08 20:10:31

标签: c# string web-services variables dynamic

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

1 个答案:

答案 0 :(得分:0)

您不能这样做,因为每次关闭应用程序时,内存都会被释放,并且您将丢失所有变量值。

你可以:

  • 将ProjectID作为命令行参数传递给您的应用程序。您可以使用不同的参数(ProjectID)创建运行程序5次的PowerShell脚本。
  • 您可以将ProjectID存储在文本文件中/每次启动程序时,它都会读取文本文件以获取下一个ProjectID。

如果您想隐藏ProjectID,您可以:

  • 使用ProjectID加密文本文件并在控制台应用程序中解密。
  • 您可以在exe文件中存储所有5个ProjectId,并只向下一个文本文件写入数字 - 例如,第3个。