どのようにしてstartup.csにデータを渡しますか?startup.csにデータを渡す
これは私がテスト・フィクスチャに応じて異なるデータを渡す必要WebHostBuilder
とTestServer
を使用して統合テストのためのものです。したがって、たとえば、設定ファイルからそれを引っ張っていけない
データがstartup.csに登録ミドルウェアに供給されます
ドキュメントが、これは動作するはず示唆しているようだ:
var configBuilder = new ConfigurationBuilder()
.AddInMemoryCollection(new[]
{
new KeyValuePair<string, string>("key", "value"),
});
var configuration = configBuilder.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseConfiguration(configuration) // config added here
.UseStartup<Startup>()
.Build();
host.Run();
しかし、startup.csのConfigurationオブジェクトを調べると、そのキーは存在しません。また、startup.csで定義されたプロバイダのみが利用可能です。私はコンセプトをテストするために、現時点でのProgram.csでこれを行うにしようとしています
、その後、私が間違ってやって後で
統合テストの任意のアイデアに移動しますか?
スタートアップにデータを渡すより良い方法はありますか?
'Main'と' Startup'の設定はまったく違っていて、お互いには話しません。だからあなたがここで設定したものは、Webホストの設定だけです。しかし、 'Startup'にデータを送る方法は別です。あなたはコンストラクタや 'Configure'や他の場所でそれを望みますか? –
私は特定のミドルウェアを設定したときに設定する必要がありますが、コンストラクタもうまくいくでしょう – ChrisCa
'Main'に依存関係注入のための' Service'を実際に追加することはできますか?それが適切であれば、答えとして例を追加することができます。たとえば、必要なデータを含むシングルトンにすることができます。 –