gpt4 book ai didi

asp.net - 如何在 .NET Framework、.NET Standard 和 .NET Core 项目之间使用相同的配置?

转载 作者:行者123 更新时间:2023-12-04 03:09:55 25 4
gpt4 key购买 nike

ConfigurationManager .NET Standard 中不存在,检索正在执行的程序集的应用程序设置的最佳方法是什么,无论是 web.configappSettings.{env}.json ,在.NET 标准类库中?

我们有三个项目:

  • ASP.NET Core Web 应用程序 (1.1)
  • ASP.NET Web 应用程序 (4.6.1)
  • .NET 标准类库 (1.4) -> 被两个项目引用

  • 在 .NET Standard 类库中,我们有一个 URL,它需要根据它部署到的环境进行更改。

    这适用于 .NET Core 应用程序,我们只需将 URL 添加到适当的 appSettings.{env}.json文件,将适当的值添加到 DI 容器,然后使用 Microsoft.Extensions.Options库来检索配置。

    但是,我们还需要从 .NET Framework 4.6.1 应用程序中调用库,但由于没有方法(至少我找不到)从 web.config 中检索值。文件,我们没有很好的方法在类库中设置 URL。

    我们暂时解决了这个问题,将 URL 变量设为静态并在 Application_Start() 中设置其值。我们引用它的每个 .NET Framework 项目的方法,我们通过添加到每个 web.config 的 appSetting 键确定它是哪个环境,然后根据环境手动设置 URL。

    是否有更可靠的方法来处理从 .NET Core 和 .NET Framework 应用程序中的 .NET Standard 类库中检索 appSettings 值?
    最好是我们可以单独在类库中设置值。

    最佳答案

    您应该在调用库之前从配置中读取值,并通过参数将其传递给方法或构造函数。

    通常,库代码不应依赖于其宿主环境配置的副作用。这样做会使重用代码或有效测试变得非常困难。

    关于asp.net - 如何在 .NET Framework、.NET Standard 和 .NET Core 项目之间使用相同的配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46063664/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com