এতে কয়েকটি বাঁক ও পালা হয়েছে। আমি এই উত্তরটি এএসপি.নেট কোর 2.0 (26/02/2018 পর্যন্ত) সাথে আপ টু ডেট হতে সংশোধন করেছি ।
এটি বেশিরভাগ সরকারী নথি থেকে নেওয়া :
আপনার এএসপি.এনইটি অ্যাপ্লিকেশনটিতে সেটিংস নিয়ে কাজ করার জন্য, আপনি কেবলমাত্র Configuration
আপনার অ্যাপ্লিকেশনটির Startup
ক্লাসে ইনস্ট্যান্ট করার পরামর্শ দেওয়া হয় । তারপরে, পৃথক সেটিংস অ্যাক্সেস করতে বিকল্প প্যাটার্নটি ব্যবহার করুন। ধরা যাক আমাদের কাছে এমন একটি appsettings.json
ফাইল রয়েছে যা দেখতে দেখতে:
{
"MyConfig": {
"ApplicationName": "MyApp",
"Version": "1.0.0"
}
}
এবং কনফিগারেশনের প্রতিনিধিত্বকারী আমাদের একটি পোকো অবজেক্ট রয়েছে:
public class MyConfig
{
public string ApplicationName { get; set; }
public int Version { get; set; }
}
এখন আমরা এতে কনফিগারেশন তৈরি করি Startup.cs
:
public class Startup
{
public IConfigurationRoot Configuration { get; set; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
Configuration = builder.Build();
}
}
নোট .NET কোর 2.0 তে ডিফল্টরূপে নিবন্ধভুক্তappsettings.json
হবে Note প্রয়োজনে আমরা পরিবেশের জন্য একটি কনফিগার ফাইলও নিবন্ধভুক্ত করতে পারি ।appsettings.{Environment}.json
আমরা যদি আমাদের নিয়ন্ত্রণকারীদের কাছে আমাদের কনফিগারেশনটি ইনজেক্ট করতে চাই তবে আমাদের এটি রানটাইম দিয়ে নিবন্ধিত করতে হবে। আমরা এর মাধ্যমে এটি করি Startup.ConfigureServices
:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Add functionality to inject IOptions<T>
services.AddOptions();
// Add our Config object so it can be injected
services.Configure<MyConfig>(Configuration.GetSection("MyConfig"));
}
এবং আমরা এটি এর মতো ইনজেকশন করি:
public class HomeController : Controller
{
private readonly IOptions<MyConfig> config;
public HomeController(IOptions<MyConfig> config)
{
this.config = config;
}
// GET: /<controller>/
public IActionResult Index() => View(config.Value);
}
সম্পূর্ণ Startup
শ্রেণি:
public class Startup
{
public IConfigurationRoot Configuration { get; set; }
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Add functionality to inject IOptions<T>
services.AddOptions();
// Add our Config object so it can be injected
services.Configure<MyConfig>(Configuration.GetSection("MyConfig"));
}
}