c# - 将字符串列表作为参数传递给控制台应用程序

标签 c# windows parameters arguments console-application

我需要将字符串列表作为参数传递给控制台应用程序(使用 C# 开发)。 控制台应用程序通过 System.Diagnostics.Process.Start 启动,如下所示:

string fname = "testDoc";
List<string> myList;  //initialized elsewhere

Process console = Process.Start("Client.exe", "-filename:"+fname+ " -list:"+myList);

我怎样才能实现这个目标?

最佳答案

正在运行

Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + myList)

将执行 myList.ToString() 并将转换为:

Client.exe -filename:testDoc -list:System.Collections.Generic.List`1[System.String]

这不是您想要实现的目标。尝试一下

Process console = Process.Start("Client.exe", "-filename:" + fname + " -list:" + String.Join(",", myList)) 

或类似的东西。

更新

当然,您可能需要考虑一些更文明的方法将数据传递给该进程。常见的方式有:

  • 数据库
  • 文件系统(文件)
  • WCF

更新

鉴于评论中提供的上下文,我选择在服务器上运行完全独立的 Windows 服务(不间断,不调用),并使用用于同步的数据库:

  • 带有表的数据库 Tasks带列input data , output data以及您可能想要的任何其他内容(例如某些日期或用户 ID)
  • 当要处理的数据出现时,将行插入该表的网页
  • Windows 服务重复(每 x 秒)查询表中是否有未处理的任务,并执行任务(如果有);结果保存在output data中栏目
  • 根据用户请求,网页查询给定任务并显示其状态,如果存在则显示输出数据

随着用户流量的增长,它更加强大并且可以更好地扩展。理想情况下,服务本身会为单独的任务生成工作线程,以利用多个核心。有了这样的架构,就有很多方法可以优化性能和监控任务。

关于c# - 将字符串列表作为参数传递给控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008671/

相关文章:

c# - 如何在 C# 中在运行时转换泛型值?

C# Interlocked 用作锁定机制?

python - 如何在嵌套函数中评估外部范围的变量?

sql - Microsoft LogParser : How to use parameters in a file

JavaScript-ES6 : addEventListener call a class methode with paramteter is not working

c# - 接口(interface)参数

c# - Windows Phone 8.1 相机初始化 - UnAuthorizedException

.net - PowerShell - 如果用户输入凭据,则查询 AD 时出错

windows - 在 Windows 上设置共享的远程 git 存储库的最快和最简单的方法是什么?

windows - 检测 WinHelp 是否安装在 Vista 或更新的 Windows 上