古いクラスライブラリは、app.configを使用して自動的に設定値を読み取ります。新しいクラスライブラリでは、この機能を追加する必要があります。 Startup.csはapp.settingsを読み込むために使います。クラスライブラリでは、Startup.csも追加する必要があります。あなたのproject.json
で
あなたはappsettings.json
add - new item
経由の追加の依存
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final"
を持っていることを確認してください。あなたの接続MYDBやDefaultConnectionを呼び出すことができますjson
{
"Data": {
"MyDb": {
"ConnectionString": "Server=.;Database=MyDb;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
}
にフィルタリングします。
Startup.cs
を追加すると、コードはappsettings.json
となります。
これを行うコンストラクタメソッドについては下記を参照してください。
参照
Configuration["Data:MyDb:ConnectionString]
上記の例では
using Microsoft.Data.Entity;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace MyProject
{
public class Startup
{
public IConfigurationRoot Configuration { get; set; }
public Startup()
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration["Data:MyDb:ConnectionString"]));
}
}
}
はIConfigurationRootの種類ではなく、文字列を返します。
文字列値は、次の
string connection = Configuration.Get<string>("Data:MyDb:ConnectionString");
を試してみてください取得するために、私はこの同じシナリオ(MVCプロジェクトの実行が、Webプロジェクトから接続文字列を読んでする必要がある別のプロジェクトで行われたすべてのデータアクセスを)持っています。私は以下の答えが「受け入れられた」とは思わないが、これはまだあなたのために働いていないのですか? – ganders