【问题标题】: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 应用程序。

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

【问题讨论】:

    标签: c# configuration app-config remoting


    【解决方案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,但它需要具有网站的路径,这有点违背了目的。忘了我说了什么:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2011-02-26
    • 2012-12-21
    • 2019-04-07
    • 2013-01-13
    • 1970-01-01
    • 2013-10-31
    相关资源
    最近更新 更多