जवाबों:
IHostingEnvironment को बनाए रखने के लिए बस स्टार्टअप क्लास में एक संपत्ति बनाएं। प्रॉपर्टी को स्टार्टअप कंस्ट्रक्टर में सेट करें, जहां आपके पास पहले से एक्सेस है, तो आप कन्फिगर सर्विसेज से प्रॉपर्टी को एक्सेस कर सकते हैं
ConfigureServicesइसमें असंभव क्यों है?
ConfigureServices, यह असंभव है क्योंकि फ्रेमवर्क उस विशेष पद्धति के लिए निर्भरता इंजेक्शन का समर्थन नहीं करता है जिस तरह से अन्य क्षेत्रों में करता है (शायद इसलिए कि आप इस विधि का उपयोग निर्भरता इंजेक्शन को कॉन्फ़िगर करने के लिए करते हैं)। निर्माता के स्तर पर सेटिंग के रूप में जो वर्णित समस्या के आसपास काम करना चाहिए।
इस एक के डुप्लिकेट के रूप में चिह्नित प्रश्न से हटा दिया गया और हटा दिया गया । एक 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 ठीक काम कर रहा है।