回答:
Startupクラスにプロパティを作成して、IHostingEnvironmentを永続化するだけです。既にアクセスできるスタートアップコンストラクターでプロパティを設定すると、ConfigureServicesからプロパティにアクセスできます
ConfigureServices
それは不可能ですか?
ConfigureServices
フレームワークがその特定のメソッドの依存性注入を他の領域で行う方法でサポートしていないため(おそらく、このメソッドを使用して依存性注入を構成しているため)、不可能です。Joeが説明したようにコンストラクターレベルで設定すると、この問題を回避できます。
この質問の重複としてマークされた質問からここにコピーされ、削除されました。a-ctorへのクレジット。
にアクセスIHostingEnvironment
したい場合はConfigureServices
、コンストラクタを介して挿入し、後でアクセスできるように保存する必要がありますConfigureServices
。
public class Startup
{
public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
Configuration = configuration;
Environment = environment;
}
public IConfiguration Configuration { get; }
public IHostingEnvironment Environment { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
System.Console.WriteLine($"app: {Environment.ApplicationName}");
}
// rest omitted
}
environment
は小文字ですが、プロパティはのようEnvironment
です。
IHostingEnvironment
現時点で廃止されただけであると言ってはいけません.Net Core 3.0
か?(私は「テイクホームテスト」は通話に取り組んでいるservices.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
内部ConfigureServices()
。方法とIHostingEnvironmentが正常に動作している