c# - 在运行时设置默认命令行选项值

标签 c# command-line command-line-arguments command-line-parser

我正在使用CommandLine Parser Library解析应用程序中的命令行参数。

在大多数情况下,有些选项在用户每次运行应用程序时都是相同的。通常,我使用 DefaultValue 属性,这样如果用户未提供值,则将使用默认值。

[Option('a', "address", DefaultValue = "http://me.com", Required = false, HelpText = "Address of server.")]
public string Address{ get; set; }

我面临的问题是默认值是特定于给定部署的,需要在部署后进行配置。我希望用户/管理员能够使用配置文件设置这些选项的默认值。

有谁知道如何在运行时更改选项的默认值?然后,当启动应用程序时,我可以加载配置文件并相应地设置默认值。

最佳答案

为了其他寻找此问题的人的利益,我今天面临着同样的问题,并且我意识到选项可以与 C# 6 自动属性初始值设定项配合良好。

[Option]
public string MyProperty { get; set; } = Properties.Settings.Default.MySetting;

毫无疑问,在 C# 5 及更早版本中,您可以使用私有(private)支持属性实现相同的目标。

关于c# - 在运行时设置默认命令行选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777812/

相关文章:

c# - DrawToBitmap - System.ArgumentException : Parameter is not valid

c# - 枚举类型的接口(interface)时,如何只获取直接继承的接口(interface)?

node.js - 如何在 Windows 上修复 'npm does not support Node.js v11.14.0 error'?

python - 如何通过命令行在pytest中传递参数

c# - 将命令行参数传递给 Visual Studio 容器工具中 .NET Core 控制台应用程序的 Docker 调试运行

c# - Xamarin Forms - 从不从 ContentPage 继承的类中查找 App 的当前页面

C# - 文件编码问题

encryption - 在命令行中使用 openssl 使用公钥解密

windows - 从命令行对不同长度的十六进制数进行排序?

java - 从命令行启动 android 测试时的自定义参数