Muszę sprawdzić ConfigureServices
metodę, czy nazwa bieżącego środowiska hostingu to „Programowanie”.
Więc użycie IHostingEnvironment.IsDevelopment()
metody może być dla mnie ok, ale w przeciwieństwie do metody Configure, nie mam IHostingEnvironment env
.
asp.net-core
Zestaw
źródło
źródło
ConfigureServices
to niemożliwe?ConfigureServices
, jest to niemożliwe, ponieważ framework nie obsługuje wstrzykiwania zależności dla tej konkretnej metody tak, jak robi to w innych obszarach (prawdopodobnie dlatego, że używasz tej metody do konfigurowania wstrzykiwania zależności). Ustawienie na poziomie konstruktora, jak opisał Joe, powinno obejść ten problem.Tutaj skopiowano z pytania oznaczonego jako duplikat tego i usunięto . Kredyt dla a-ctor .
Jeśli chcesz uzyskać dostęp
IHostingEnvironment
doConfigureServices
, będziesz musiał wstrzyknąć go za pomocą konstruktora i zapisać do późniejszego dostępu wConfigureServices
:źródło
environment
jest mała litera, podczas gdy właściwość wydaje się byćEnvironment
.IHostingEnvironment
jest on przestarzały dopiero od dnia.Net Core 3.0
? (Pracuję nad „testem do domu”, który wywołujeservices.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
wewnątrzConfigureServices()
metody, a IHostingEnvironment działa dobrze.IHostingEnvironment
jest przestarzałe w Core 3.1powinien załatwić sprawę ...
Następnie odwołaj się do dowolnego miejsca za pomocą
_env.IsDevelopment()
etc ...źródło