c# - 是否可以在 App.config 文件中的 appSettings 中引用主目录?

标签 c# .net app-config

我在 Visual Studio (2010) 中有这个 C# 项目,我想在 <appSettings> 中引用我的主目录中的一个文件。项目的 App.config 文件的一部分。也就是说,我使用这种语法:

<appSettings>
    <add key="Database" value="sqlite:///C:\Users\arvek\test.db3" />
</appSettings>

是否可以通过变量而不是直接硬编码来引用我的主目录 (C:\Users\arvek)? F.ex.: value="sqlite:///$HOME\test.db3".

最佳答案

ConfigurationManager 不会自动展开应用设置中的任何内容,因为它们只是自由格式的字符串,但您可以手动展开。使用EnvironmentExpandEnvironmentVariables方法,会根据当前环境展开%VARIABLENAME%形式的变量。所以:

<appSettings>
    <add key="Database" value="sqlite:///%APPDATA%\database\test.db3" />
</appSettings>


string path = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["Database"]);

“主”目录的根路径在 %USERPROFILE% 变量中,尽管 %APPDATA% 是放置您正在谈论的东西的传统位置。还有用于系统范围数据的 %ALLUSERSPROFILE%(尽管在 Windows 7 中它实际上指向一个特殊的系统范围数据文件夹,而不是“公共(public)”配置文件。)

关于c# - 是否可以在 App.config 文件中的 appSettings 中引用主目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651132/

相关文章:

c# - 向 wcf 服务 : The remote certificate is invalid according to the validation procedure 发出 https 请求

c# - 如何为没有输入和输出的方法编写单元测试?

c# - 替换模板中字符串的最快方法

c# - 使用 UDP 协议(protocol)将 C Sharp 中的文件从计算机发送到另一台计算机

c# - WCF 数据服务身份验证

c# - 在 .NET MVC 4 (Web API) 中,如何拦截对 Controller 的请求并更改其内容类型?

java - Hazelcast - .Net 客户端支持可靠的主题吗?

c# - .exe 和 .dll 之间的共享配置

.net - 具有服务引用的类库

c# - 企业配置思路