当前位置: 首页 > 知识库问答 >
问题:

如何在. NET Core中获取机器配置文件名

归星驰
2023-03-14

我正在移植一个应用程序。NET框架到。网络核心(标准)。

在应用程序中,我们有以下代码

   public LogMessageListenerFromConfig()
        : this(AppDomain.CurrentDomain.BaseDirectory.ConfigurationFile, LoggingSection.DefaultName)
    { }

    public LogMessageListenerFromConfig(string section)
        : this(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, section)
    { }

    public LogMessageListenerFromConfig(string filename, string section)
    {
        // todo: set up a file watcher and refresh the listeners (etc.) when it changes.
        var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = filename };
        var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

        _section = LoggingSection.Section(configuration, section);
        Refresh();
    }

这似乎与 .NET Core 兼容,除了以下语句

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

AppDomain上不再有< code>SetupInformation。很公平,我读到它会引起问题等等。但是,我还能如何在一个实用程序类中获得应用程序配置文件名呢?

请注意,此类将用于控制台和asp.net(核心)应用程序。

任何帮助赞赏

斯蒂芬

共有1个答案

闾丘德业
2023-03-14

如果您要将库移植到. Net Standard,也会遇到同样的问题。解决方案是这样的;安装这个nuget包system.configuration.configurationmanager然后您可以使用:

 var conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 var configFilePath = conf.FilePath;
 类似资料:
  • 我的公司目前正在使用checkstyle和findbugs脚本来衡量它们的代码质量。我是一个将这些设置移植到一个新的SonarQube驱动的环境中的人。 我希望SonarLint(运行在eclipse中的SonarQube的本地实例)自动更新本地使用的配置文件,因此它始终符合远程运行服务器的配置。 但是:如果我没有internet连接或没有与服务器的连接(例如,我没有访问公司网络的权限),我仍然希

  • 不管配置文件名如何,是否有任何方法可以将当前加载的配置传递给PropertySource?从cloud config成功获取配置后收到的日志,用于应用程序:web-server profile:LOCAL

  • 在程序入口文件index.js 中可以在init方法中获取server对象,通过该server可以获取config,具体方式如下: init(server, options) { const config = server.config(); const url = config.get('elasticsearch.url'); } 自定义配置 1.配置校验与默

  • 我刚刚将我们的Spring Boot项目从引导升级到v2.6.2,从Spring Cloud升级到2021.0.0。 现在,我的远程配置获取没有任何效果,应用程序也无法获取正确的属性文件 [main]INFO o. s. c. c. c. ConfigServiceProperty tySourceLocator-从服务器获取配置:http://localhost:8080 [main]WARN

  • 我想在Laravel模型中分配一个默认值,但该值应该来自配置文件。 我写下面的代码,但它给我的错误 它向我显示了一个错误,比如常量表达式包含无效操作 如何从配置文件中获取值并在Laravel模型文件中设置$attribute变量?

  • 我试图使用Spring Integration实现以下场景: 在接受了Gary的建议后,我做了一个愚蠢的动态bean: