将web.config文件添加到Asp.Net Core项目

3

我正在构建一个Asp.Net Core 3.1项目,该项目将引用一些旧的.Net Framework API。这些API是为了从调用应用程序托管的web.config文件中获取配置值而构建的。到目前为止,所有的调用应用程序都是.Net Framework应用程序,并且包含web.config文件。新项目是.Net Core。我该如何向.Net Core项目添加web.config文件,以便API可以访问它?我尝试只是将具有正确应用程序设置值的web.config添加到解决方案中。但没有起作用。


请注意,以下答案(截至本评论时)忽略了一个巨大的问题:你可以像添加其他文件一样添加web.config文件,但它不会影响运行时,也不会进行任何转换等操作,它只是一个静态文本文件。 - Camilo Terevinto
3个回答

3

3

ASP.NET Core 用 appsettings.json 替换了 web.config 文件。如果需要读取配置的API与项目相同,那么只需在 API 控制器构造函数中添加 IConfiguration 依赖项并直接从中提取值即可。

例如: SomeApiController.cs

public class SomeApiController : Controller
{
    private readonly IConfiguration _config;

    public SomeApiController (IConfiguration configuration)
    {
        _config = configuration;
    }


    public IActionResult SomeEndpoint()
    {
       var connectionString = _config.GetConnectionString("DefaultConnection");

       return connectionString;
    }
}

或者,如果你确实非常需要一个 web.config 文件,那么我建议使用 XML 解析器直接读取该文件。有一篇几年前的教程介绍了这个方法,但我暂时找不到它。


1
实际上,这个变化是从System.Web.ConfigurationMicrosoft.Extensions.Configuration,与你的说法有很大的区别。web.config是唯一的选择,而appsettings.json只是无限多种选项之一(包括文件、数据库、环境变量、HTTP调用等等)。此外,注入IConfiguration是一个不好的做法。 - Camilo Terevinto

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接