【问题标题】:How can I dynamically provide command line arguments during VS 2012 C# debug sessions?如何在 VS 2012 C# 调试会话期间动态提供命令行参数?
【发布时间】:2014-03-08 03:41:13
【问题描述】:

我正忙于一个控制台应用程序,它是一个 API 类的 CLI,它为数据集成过程提供顶级公共方法。在开发过程中,我需要经常在项目设置、调试部分更改命令行参数。

我正在寻找一种方法来动态执行此操作,同时避免每次更改笨拙的解决方案后的重建成本,例如在入口点 Mainstring[] args 参数列表中显式设置值。

想到的第一个解决方案是 app.config 中的自定义配置部分,我可以在其中定义各种命令行的集合,每个都是名称-值对的列表,并在命令行的属性中指定收集哪一个应该是活跃的。然后,活动命令的名称-值对将通过静态、不变的代码动态注入到所述string[] args 参数列表中。

还有其他方法可以实现吗?

【问题讨论】:

  • 只需从文本文件中读取它们。与 C# 编译器接受的 @ option 相同的想法。保持文件在编辑器选项卡中打开以快速进行更改。

标签: .net console-application app-config command-line-interface configsection


【解决方案1】:

我能想到的一件事是使用 quickwatch 来改变命令行数组

假设你有以下代码:

public static void Main(string[] arg)
{
    string s = arg[0];
}

在第一行放一个断点,选择arg后按shift f9。这将打开快速监视并在表达式字段中重新分配数组,同时将旧值复制到其中。

arg = new string[3] { arg[0], arg[1], "test" }

【讨论】:

  • 我通常使用即时窗口来处理类似的事情,但对于这个项目,这很快就会变得繁重。
猜你喜欢
  • 2021-12-16
  • 1970-01-01
  • 2012-09-16
  • 2012-08-21
  • 1970-01-01
  • 2022-12-18
  • 2010-12-14
  • 1970-01-01
  • 2011-03-07
相关资源
最近更新 更多