ConfigurationManager是否可以与ASP.NET Core的appsettings.json一起使用?

时间:2018-10-24 03:53:06

标签: c# asp.net .net-core

我有一个.NET Standard库,其中包含我所有与SQL有关的代码。它甚至包含创建SQL连接的一些代码。该库需要从应用程序配置文件中读取,以便获取SQL连接字符串。该库正在使用典型的ConfigurationManager.ConnectionStrings方法。

现在,我在.NET Core ASP.NET Web Api 2应用程序中使用此库。我在此应用程序的appsettings.json文件中定义了连接字符串。连接字符串位于ConnectionStrings字段中,其给定名称与我的DLL从上面查找的名称匹配。

这似乎不起作用。从顶部开始,我的DLL从配置文件中找不到连接字符串。

ConfigurationManager是否不能与appsettings.json一起使用?如果没有,我应该如何处理?

1 个答案:

答案 0 :(得分:1)

ConfigurationManager不能与appsettings.json一起使用,而不是ConfigurationManager,您必须使用ConfigurationBuilder类在startup.cs文件中添加json文件。

1。将以下代码放在appsettings.json中

"ConnectionStrings": {
 "connectionstring ": "Data Source=Demo_server\\SQLEXPRESS01;Initial Catalog=Demo_DB;Persist Security Info=True; User ID=sa;Password=Password@123" }

2。将以下代码放在startup.cs中。

 public Startup(IHostingEnvironment env)
    {
         Configuration = new ConfigurationBuilder().AddJsonFile("appSettings.json").Build();             
            .AddJsonFile("appSettings.json") 
            .Build();
    }

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {            
       ConnectionString = Configuration["ConnectionStrings:connectionstring"]; // Get Connection String from Appsetting.json
    }

3。创建ConnectionStringUtility类以从Startup.cs文件中获取连接字符串。

public class ConnectionStringUtility
{ 
  public static string GetConnectionString()
  { 
    return Startup.ConnectionString; 
  } 
}

4。在连接变量中获取Connectionstring并在需要的地方使用此连接字符串。

public string Connectionstring = ConnectionStringUtility.GetConnectionString();