app-config 相关问题

.NET应用程序配置文件包含特定于应用程序的设置。

未提供 System.CommandLine 选项时回退到 app.config 的最佳方法?

除了直接预处理参数之外,还有什么方法可以确定是否未提供选项(同时仍然允许默认值),以便可能回退到读取 除了直接预处理 args 之外,还有什么方法可以确定是否提供了 NOT 选项(同时仍然允许默认值),以便有可能从 app.config 中读取 。 这是我想为其创建后备的示例选项: static async Task<Int32> Main(String[] args) { Option<Int32> pollingRateOption = new Option<Int32>( aliases: new[] { "-r", "--Polling-Rate" }, description: "Rate at which to poll, in milliseconds.", isDefault: true, parseArgument: result => { if (Int32.TryParse(result.Tokens.Single().Value, out Int32 pr)) { if (pr < 1 || pr > 1000) { result.ErrorMessage = "Polling-Rate must be an integer from 1-1000"; } return pr; } else { result.ErrorMessage = "Polling-Rate must be an integer from 1-1000"; return 0; // Ignored. } } ); pollingRateOption.ArgumentHelpName = "1-1000"; pollingRateOption.Arity = ArgumentArity.ExactlyOne; pollingRateOption.SetDefaultValue(5); RootCommand rootCommand = new RootCommand($"{AppName}"); rootCommand.AddOption(pollingRateOption); rootCommand.SetHandler((pollingRateValue) => { Run(pollingRateValue); }, pollingRateOption); return await rootCommand.InvokeAsync(args); } 好吧,虽然这看起来有点hacky,但解决方案似乎是删除 SetDefaultValue(),保留 isDefault: true,然后使用 if (!result.Tokens.任意()). 不过,这有一个警告,在 parseArgument 处理程序中设置的任何值都将在 --help 文本中显示为默认值。因此,如果从 app.config 动态提取它, [default: ] 将是可变的。这可能是不可取的。 解决这个问题的方法似乎是使用 CommandLineBuilder() 覆盖帮助文本,并通过 .UseHelp() 硬编码默认文本。以下是最终解决方案的工作示例。 static async Task<Int32> Main(String[] args) { Option<Int32> pollingRateOption = new Option<Int32>( aliases: new[] { "-r", "--Polling-Rate" }, //description: "Rate at which to poll, in milliseconds.", //No longer needed, added through .UseHelp() below isDefault: true, parseArgument: result => { Int32 pr; if (!result.Tokens.Any()) { //If commandline option not specified, attempt to get it from app.config if (!Int32.TryParse(ConfigurationManager.AppSettings["Polling-Rate"], out pr)) { pr = 5; //Actual default if no option on commandline or in app.config } } else { if (!Int32.TryParse(result.Tokens.Single().Value, out pr)) { result.ErrorMessage = "Polling-Rate must be an integer from 1-1000"; } } if (pr < 1 || pr > 1000) { result.ErrorMessage = "Polling-Rate must be an integer from 1-1000"; } return pr; } ); pollingRateOption.ArgumentHelpName = "1-1000"; pollingRateOption.Arity = ArgumentArity.ExactlyOne; //pollingRateOption.SetDefaultValue(5); //parseArgument handler will not fire on missing option if default is set RootCommand rootCommand = new RootCommand($"{AppName}"); rootCommand.AddOption(pollingRateOption); rootCommand.SetHandler((pollingRateValue) => { Run(pollingRateValue); }, pollingRateOption); Parser parser = new CommandLineBuilder(rootCommand) .UseDefaults() .UseHelp(ctx => { ctx.HelpBuilder.CustomizeSymbol(pollingRateOption, secondColumnText: "Rate at which to poll, in milliseconds. [default: 5]"); }) .Build(); return await parser.InvokeAsync(args); }

回答 1 投票 0

Nlog IsDebugEnabled 且所有其他均为 false

我正在尝试为我的解决方案设置 Nlog。我有一个包含多个项目的解决方案,可以为 Revit 制作插件。 我按照所有说明操作,设置了 Nlog.config 文件,设置了目标和

回答 1 投票 0

我可以通过编程方式设置 app.config 'useLegacyV2RuntimeActivationPolicy' 属性吗?

我必须将 .NET 3.5 迁移到 4.0,但一些 dll 未加载,谷歌搜索后我发现创建一个 app.config 可以解决它: 我必须将 .NET 3.5 迁移到 4.0,但某些 dll 未加载,在谷歌搜索后我发现创建一个 app.config 可以解决它: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" /> </startup> </configuration> 我想在不使用配置文件的情况下设置这些选项,可以吗? 可以在运行时从 .NET 应用程序或库中进行设置,但有一些限制。您可以使用 ICLRRuntimeInfo 接口来处理此问题。详情请看我写的这篇文章。 技术上是可行的。您必须自己托管 CLR,以便在创建主 AppDomain 之前调用 ICLRRuntimeInfo::BindAsLegacyV2Runtime() 方法。 .config 文件通常是一个低得多的痛点,除非您已经在托管。

回答 2 投票 0

在运行时调用 ICLRRuntimeInfo.BindAsLegacyV2Runtime 的危险

我有一个使用 Crystal Reports 的 .NET 应用程序。阻碍我升级到 .NET 4.0 的一大原因是,如果应用程序中没有以下几行,水晶报表将无法工作。

回答 1 投票 0

错误:服务 System.Windows.Forms.Design.IEventHandlerService 已存在于服务容器中

我正在开发一个基于Windows Form模板的Windows应用程序。我正在使用.NET 3.5版本。在此应用程序中,目标是可以从应用程序管理不同表单的所有视觉设置。

回答 6 投票 0

app.exe.config 中的更新值未反映在我的应用程序 .NET 中

我真的很难理解为什么我的 app.exe 没有获取 app.exe.config 中的更新值 应用程序配置 <

回答 2 投票 0

c# 在exe中嵌入配置文件

我有一个控制台程序“A”,在给定点将运行程序“B”和程序“C”。但是,我遇到了与每个程序关联的 app.config 问题。基本上程序A是j...

回答 4 投票 0

.NET 类库项目中的多个 App.Config 文件

我正在创建一个类库项目。 现在默认情况下我有一个 App.Config 文件,以便我将所有环境特定数据放入该配置文件中。 现在基于环境(无论是 Dev /

回答 4 投票 0

配置部分“appSettings”有一个意外的声明

我的 c# 中的 app.config 文件遇到问题 大多数时候服务可以读取第节,但有时会出现下面的错误。 这个问题是间歇性出现的,所以...

回答 4 投票 0

为 .config 文件中的自定义部分启用智能感知

在 Visual Studio 中编辑 .NET 配置文件(app.config、web.config 等)时,我会得到 Visual Studio 的智能感知来指导我选择应用程序的设置。如果我添加自定义配置

回答 3 投票 0

以编程方式将密钥添加到 App.config C#

我正在尝试以编程方式添加密钥并将其保存到我的 App.config 文件中。我的代码如下,我见过很多这样的不同示例,但我的代码不起作用。我正在尝试添加一个全新的密钥...

回答 3 投票 0

如何首先覆盖 EF 代码中的“不可见”连接字符串?

我首先通过代码使用 EF 6.1.2 编写了我的应用程序。输入命令“更新数据库”后,数据库已在我的 Microsoft SQL Server 2017 中创建。到目前为止一切顺利。然而我从来没有...

回答 1 投票 0

如何将环境变量列表绑定到.Net中的选项

我在托管我的应用程序的 kubernetes pod 上有一个环境变量列表,它没有任何部分,只有如下所示的变量列表: KAFKA_BOOTSTRAP_SERVERS 卡夫卡_PAS...

回答 1 投票 0

在应用程序服务配置中设置和使用 web.config 中不存在的变量名称

使用 .NET Framework 4.8 作为网站的 API 应用程序。 //网页配置 //主项目解决方案中的代码,这有效 变量 ID =

回答 1 投票 0

如何在配置文件中添加 json 字符串作为应用程序设置值

我有一个要求,在进行 API 调用之前需要获取一组 json。 我计划在 app.config 中添加这些 json 字符串,如下所示 我有一个要求,在进行 API 调用之前需要获取一组 json。 我计划在 app.config 中添加这些 json 字符串,如下所示 <add key="Jsons" value="{""Id"":""25"",""Name"":""Value-1""}"/> 但是添加此内容会导致在值的开头出现编译错误“缺少空格”。 如果我遗漏了什么,请告诉我。 我不想创建一个单独的文本文件来读取 json。这就是为什么我决定使用 app.config 本身 您的报价格式不正确。 你能试试这个吗: <add key="Jsons" value='{"Id":"25","Name":"Value-1"}'/> app.config 仍然是 XML!您需要对引号使用 XML 转义序列。 <add key="Jsons" value="{&quot;Id&quot;:&quot;25&quot;,&quot;Name&quot;:&quot;Value-1&quot;}"/> 我在这里看到两个选择: 使用“\”转义: <add key="Jsons" value="{\"Id\":\"25\",\"Name\":\"Value-1\"}"/> 使用单引号: <add key="Jsons" value="{'Id':'25','Name':'Value-1'}"/> 如何在应用程序配置中获取动态值?可以吗? 应用程序设置 添加 key="AesKey" value="vSdLqF9X7SGPybZRGNDvDOwXOj7oaZA02YHhzcJICHO=" //代替值,我需要传递 crm 实体中可用的现有配置值。

回答 4 投票 0

.net 4.8 控制台应用程序的 Nlog 配置写入数据库 - 未写入日志

我有一个 C#.Net 4.8 控制台应用程序,我尝试使用 NLog 记录到 MSSQL 数据库。 我的应用程序具有以下内容: 私有静态记录器 nLogger = LogManager.GetLogger("

回答 1 投票 0

自动绑定重定向替换整个 App.config 文件

我在我的 C# 项目中添加了一个 App.config 文件,其中包含很多内容:appSettings、connectionStrings、entityFramework、system.net mailSettings 等。 当我构建项目时,结果 <

回答 1 投票 0

如何加密 .NET Core 5.0 的 App.config 中的部分或密钥?

我制作了一个发送电子邮件的程序,需要将密码存储在App.config文件中,但我不希望仅通过打开文件即可访问密码。我想加密一些...

回答 1 投票 0

如何可怕地扭曲 C# 项目来读取其类库的 app.config 文件

所以让我首先说“我知道这不是最佳实践”并且我不想将 app.config 文件中的信息添加到 web.config 文件中......我已经一个项目...

回答 1 投票 0

类似于 .NET 的 Spring 云配置解决方案

Spring Cloud Config 允许存储和提供应用程序的配置,多重部署到分布式环境。有 .NET 替代方案吗?所以在 app.config 中我可以说 - 获取配置,或者

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.