title: How to read a connectionString WITH PROVIDER in .NET Core?
body: <p>I added </p>
  
  <pre><code>.AddJsonFile("Connections.json", optional: true, reloadOnChange: true)
  </code></pre>
  
  <p>in </p>
  
  <pre><code> public Startup(IHostingEnvironment env)
  </code></pre>
  
  <p>Connections.json contains:</p>
  
  <pre><code>{
    "ConnectionStrings": {
      "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DATABASE;Trusted_Connection=True;MultipleActiveResultSets=true",
      "COR-W81-101": "Data Source=DATASOURCE;Initial Catalog=P61_CAFM_Basic;User Id=USERID;Password=PASSWORD;Persist Security Info=False;MultipleActiveResultSets=False;Packet Size=4096;",
      "COR-W81-100": "Data Source=DATASOURCE;Initial Catalog=Post_PS;User Id=USERID;Password=PASSWORD;Persist Security Info=False;MultipleActiveResultSets=False;Packet Size=4096;",
      "MSEDGEWIN10": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\"",
  
      "server": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;User Id=USERID;Password=PASSWORD;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\""
    },
  
  
    "conStrings": [
        {
          "name": "COR-W81-101",     
          "connectionString": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\"",
          "providerName": "System.Data.SqlClient"
        }
  
      },
  
      {
        "name": "server",
        "connectionString": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\"",
        "providerName": "System.Data.SqlClient"
      }
    ],
  
  
  
    "conStringDictionary": {
      "COR-W81-101": {
        "connectionString": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\"",
        "providerName": "System.Data.SqlClient"
      },
  
      "server": {
        "connectionString": "Data Source=DATASOURCE; Initial Catalog=COR_Basic; Persist Security Info=False;Integrated Security=true;MultipleActiveResultSets=False;Packet Size=4096;Application Name=\"COR_Basic\"",
        "providerName": "System.Data.SqlClient"
      }
  
    }
  }
  </code></pre>
  
  <p>Now I wanted to read the connectionStrings:</p>
  
  <pre><code>public class ConnectionString
  {
      public string name { get; set; }
      public string connectionString { get; set; }
      public string providerName { get; set; }
  }
  </code></pre>
  
  <p>like this:</p>
  
  <pre><code>//Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure&lt;ConnectionString[]&gt;(services, Configuration.GetSection("conStrings"));
  
  // https://stackoverflow.com/questions/31929482/retrieve-sections-from-config-json-in-asp-net-5
  //var objectSections = Configuration.GetSection("conStringDictionary").GetChildren();
  //foreach (var x in objectSections)
  //{
  //    System.Console.WriteLine(x.Key);
  //    var cs = new ConnectionString();
  //    ConfigurationBinder.Bind(x, cs);
  //    System.Console.WriteLine(cs);
  //}
  
  // http://andrewlock.net/how-to-use-the-ioptions-pattern-for-configuration-in-asp-net-core-rc2/
          Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure&lt;Dictionary&lt;string, ConnectionString&gt;&gt;(services, Configuration.GetSection("conStrings"));
  </code></pre>
  
  <p>But I can't get it to read the array or the dictionary. I need the providerName for each connectionString, and I want to have it in the same entry as the connection string, but not as a joined string. </p>