asp.net 核心中的连接字符串和应用程序设置

Connection strings & app settings in asp.net core

之前没有在 .net core 中工作过,我在连接字符串方面遇到了一些问题。 我正在尝试像这样在我的控制器中获取连接字符串

 SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["DefaultConnection"].ToString());

但我的控制器中出现 'Object reference not set to an instance of an object.'。 这就是我的 appsettings.json 的样子

"ConnectionStrings": {
    "DefaultConnection": "Server=(server)\\mssqllocaldb;Database=dbName;User ID=user;Password=123123"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"

你不能直接在你的控制器中获取连接字符串,但是你可以注入配置然后你可以在你的控制器中像这样访问连接字符串

public class HomeController : Controller
{
    public HomeController (IConfiguration configuration)
    {
        var connectionString = configuration.GetConnectionString("DefaultConnection")
    }
}

ConfigurationManager 的使用假定您的项目中存在 "App.config",而不是 appsettings.json。 示例:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Server=(server)\\mssqllocaldb;Database=dbName;User ID=user;Password=123123" />
  </connectionStrings>
</configuration>

使用

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());