ような何かを行うことができますように、私はappsettings.json
でDefaultConnection
を得ることができる方法です。あなたがDefaultConnection
にアクセスするのが面白いかのように思えますが、DIアプローチを使用する方が良いでしょう。コンストラクタ依存性注入を使用できるようにするには、Startup.cs
でいくつかの設定を正しく行う必要があります。
public IConfigurationRoot Configuration { get; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
現在ビルダーから私たちの設定JSON
を読んで、私たちのConfiguration
インスタンスに割り当てられています。さて、依存性注入用に設定する必要があります。まず、接続文字列を保持するための簡単なPOCOを作成してみましょう。
public class ConnectionStrings
{
public string DefaultConnection { get; set; }
}
我々は、セグメントを構成に強く型付けされたクラスをバインドする"Options Pattern"を実装しています。
が、これはすべての場所であることを今
public void ConfigureServices(IServiceCollection services)
{
// Setup options with DI
services.AddOptions();
// Configure ConnectionStrings using config
services.Configure<ConnectionStrings>(Configuration);
}
、我々は単にIOptions<ConnectionStrings>
を取るために、クラスのコンストラクタを必要とすることができ、我々は含むクラスのマテリアライズド・インスタンスが与えられます:さて、ConfigureServices
でこれを行います構成値。
public class MyController : Controller
{
private readonly ConnectionStrings _connectionStrings;
public MyController(IOptions<ConnectionString> options)
{
_connectionStrings = options.Value;
}
public IActionResult Get()
{
// Use the _connectionStrings instance now...
using (var conn = new NpgsqlConnection(_connectionStrings.DefaultConnection))
{
conn.Open();
// Omitted for brevity...
}
}
}
Hereはがを読まなければならないと私はいつも示唆公式ドキュメントです。
私はjsonアプリの設定に関して何も知らないけど、これはあなたが何をしているのかと思う。 http://stackoverflow.com/questions/31453495/how-to-read-appsettings-values-from-config-json-in-asp-net-vnext –