获取当前配置文件的文件名
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,但它需要具有网站的路径,这有点违背了目的。忘了我说了什么:)以上是关于获取当前配置文件的文件名的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring 中以编程方式获取当前的活动/默认环境配置文件?