আমার নিম্নলিখিত সমস্যা রয়েছে:
আমাদের একটি অ্যাপ্লিকেশন রয়েছে যা মডিউলগুলি লোড করে (অনগুলি যোগ করে)। এই মডিউলগুলির জন্য app.config এ প্রবেশের প্রয়োজন হতে পারে (যেমন ডাব্লুসিএফ কনফিগারেশন)। মডিউলগুলি গতিশীলভাবে লোড হওয়ার কারণে, আমি আমার অ্যাপ্লিকেশনটির অ্যাপ্লিকেশন কনফিগ ফাইলে এই এন্ট্রি রাখতে চাই না।
আমি যা করতে চাই তা হল:
- মেমোরিতে একটি নতুন app.config তৈরি করুন যা মডিউলগুলি থেকে কনফিগার বিভাগগুলি অন্তর্ভুক্ত করে
- আমার অ্যাপ্লিকেশনটিকে সেই নতুন app.config ব্যবহার করতে বলুন
দ্রষ্টব্য: আমি ডিফল্ট app.config ওভাররাইট করতে চাই না!
এটি স্বচ্ছভাবে কাজ করা উচিত, যাতে উদাহরণস্বরূপ ConfigurationManager.AppSettings
যে নতুন ফাইলটি ব্যবহার করে।
এই সমস্যাটি সম্পর্কে আমার মূল্যায়নের সময়, আমি এখানে সরবরাহ করা একই সমাধানটি নিয়ে এসেছি: নুনিটের সাথে app.config পুনরায় লোড করুন ।
দুর্ভাগ্যক্রমে, এটি কিছু করার মতো বলে মনে হচ্ছে না, কারণ আমি এখনও সাধারণ অ্যাপকনফাইগ থেকে ডেটা পাই।
আমি এটি পরীক্ষা করার জন্য এই কোডটি ব্যবহার করেছি:
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
var combinedConfig = string.Format(CONFIG2, CONFIG);
var tempFileName = Path.GetTempFileName();
using (var writer = new StreamWriter(tempFileName))
{
writer.Write(combinedConfig);
}
using(AppConfig.Change(tempFileName))
{
Console.WriteLine(ConfigurationManager.AppSettings["SettingA"]);
Console.WriteLine(Settings.Default.Setting);
}
এটি একই অ্যাপ্লিকেশন কনফিগের combinedConfig
চেয়ে অন্য মানগুলি ছাপিয়ে একই মানগুলিকে দু'বার মুদ্রণ করে ।
Reload app.config with nunit
কাজ করতে পারে, নিশ্চিত নয়, কোনও কনফিগারেশন লোড হওয়ার আগে অ্যাপ্লিকেশন এন্ট্রি ব্যবহার করা হয়।
AppDomain
উপযুক্ত কনফিগারেশন ফাইলের সাথে পৃথক করে মডিউলগুলি হোস্ট করা কোনও বিকল্প নয়?