获取当前配置文件的文件名

Posted

技术标签:

【中文标题】获取当前配置文件的文件名【英文标题】:Get filename of current configuration file 【发布时间】:2011-08-18 19:46:59 【问题描述】:

我认为这很简单,但我找不到答案。

我正在使用远程处理,我想将 RemotingConfiguration 存储在 app.config 中。当我调用RemotingConfiguration.Configure 时,我必须提供远程信息所在的文件名。所以...我需要知道当前配置文件的名称。

目前我正在使用这个:

System.Reflection.Assembly.GetExecutingAssembly().Location + ".config"

但这仅适用于 Windows 应用程序,不适用于 Web 应用程序。

没有任何类可以为我提供当前配置文件的名称吗?

【问题讨论】:

【参考方案1】:

试试AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

https://docs.microsoft.com/en-us/dotnet/api/system.appdomainsetup.configurationfile

【讨论】:

@comecme - 是的,抱歉打错了。 该属性在 netcore 中不可用【参考方案2】:
using System.Configuration;
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Console.WriteLine(config.FilePath);

如果您为特定的本地或漫游用户拥有单独的配置文件,那么您也可以使用正确的 ConfigurationUserLevel 找到它们。对于 Web 应用程序,请使用

WebConfigurationManager.OpenWebConfiguration("~");

【讨论】:

我不是这个意思。我正在寻找一个简单的解决方案,我不必知道应用程序是 Windows 应用程序还是 Web 应用程序。 实际上,ConfigurationManager 应该在这两种情况下都可以工作,假设您对根级 web.config 仅有只读访问权限。我会澄清我的答案。 嗯。它不像我想的那样运作良好。您可以使用带有路径名覆盖的 OpenExeConfiguration 来获取 web.config,但它需要具有网站的路径,这有点违背了目的。忘了我说了什么:)

以上是关于获取当前配置文件的文件名的主要内容,如果未能解决你的问题,请参考以下文章

关于logback如何通过当前配置文件获取路径

如何在 Spring 中以编程方式获取当前的活动/默认环境配置文件?

如何在 Spring 中以编程方式获取当前的活动/默认环境配置文件?

获取当前应用的配置文件的文件路径

java 获取当前类的路径

ios 如何从 plist 获取当前的临时配置文件名称(Dev、Dist、ETC)