কাস্টম কনফিগারেশন ফাইলগুলি লোড হচ্ছে


118

আমি জানি আমি স্থির ConfigurationManager.OpenExe(exePath)পদ্ধতিতে কোনও কনফিগারেশন ফাইলগুলি খুলতে পারি যা কোনও অ্যাসেমব্লির সাথে সম্পর্কিত তবে আমি কেবল একটি কনফিগার খুলতে চাই যা কোনও সমাবেশের সাথে সম্পর্কিত নয়। কেবলমাত্র একটি স্ট্যান্ডার্ড .NET কনফিগারেশন ফাইল।

উত্তর:


244

রিকি পোস্ট করা নিবন্ধগুলি খুব ভাল, তবে দুর্ভাগ্যক্রমে তারা আপনার প্রশ্নের উত্তর দেয় না।

আপনার সমস্যা সমাধানের জন্য আপনার এই কোডের টুকরোটি ব্যবহার করা উচিত:

ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);

কনফিগারের মধ্যে কোনও মান অ্যাক্সেসের প্রয়োজন হলে আপনি সূচক অপারেটরটি ব্যবহার করতে পারেন:

config.AppSettings.Settings["test"].Value;

1
@Oliver দ্বারা whateverYouLikeExtension, আপনি কি বলতে চান যে আপনার কি উচিত নয় আছে কিছু পরে config.?
Svish

4
@ অলাইভার এখনই চেষ্টা করে দেখতে পেয়েছে, এবং এটি ব্যতীত ভাল কাজ করছে বলে মনে হচ্ছে :)
সুইভিশ

1
আমি এটি করেছি, তবে আমি যখন কনফিগারেশন ম্যানেজ.আর সংযোগসূত্রগুলি অ্যাক্সেস করি তখনও আমি পুরানো ডেটা পাচ্ছি t আমি কী মিস করছি?
MAW74656

1
@ MAW74656: আপনার অ্যাক্সেস করার দরকার নেই ConfigurationManager.ConnectionStrings। পরিবর্তে আপনাকে configউপরের শেষ বিবৃতি থেকে ফিরে আসা অবজেক্ট থেকে মানটি পড়তে হবে ।
অলিভার

3
এটির পরে অ্যাপসেটেটিংগুলি কীভাবে পাবেন সে সম্পর্কে অন্য কারও জন্য অনুসন্ধান করুন: var foo = config.appSettings.Settings ["পরীক্ষা"]। মান;
রোরো

8

কনফিগার ফাইলটি কেবলমাত্র একটি এক্সএমএল ফাইল, আপনি এটির মাধ্যমে এটি খুলতে পারেন:

private static XmlDocument loadConfigDocument()
{
    XmlDocument doc = null;
    try
    {
        doc = new XmlDocument();
        doc.Load(getConfigFilePath());
        return doc;
    }
    catch (System.IO.FileNotFoundException e)
    {
        throw new Exception("No configuration file found.", e);
    }
    catch (Exception ex)
    {
        return null;
    }
}

এবং পরে মানগুলি পুনরুদ্ধার করে:

    // retrieve appSettings node

    XmlNode node =  doc.SelectSingleNode("//appSettings");

অ্যাক্সেসযোগ্য কোড পরে সনাক্ত করা হয়েছে throw new Exception("No configuration file found.", e);
ওয়বিক

আমি রিটার্নটি শূন্য করে ফেলব, এটি আসলে পৌঁছবে না।
ওটিভিও ডেসিও

7
। নেট লাইব্রেরি থেকে আপনার এমন দুর্দান্ত ক্লাস করার সময় কেন এক্সএমএল ব্যবহার করবেন। আমি এটি ব্যবহার করার পরামর্শ দেব না, ডিজাইনের পক্ষে দুর্বল। তারপর কি? একটি ভিন্ন স্ট্রিং ক্লাস প্রয়োগ করুন ... এটি বিবেচনা করুন।
ইউকী

@ OtávioDécio আমি কাস্টম .config ফাইলটিতে ট্রেসিং সক্ষম করতে system.diagnostics যুক্ত করতে পারি?
ফয়জানহুসাইন রব্বানী

@FaizanRabbani না নিশ্চিত কাস্টম হদিশ সম্পর্কে, কিন্তু অনুযায়ী msdn.microsoft.com/en-us/library/ms733025(v=vs.110).aspx আপনি কনফিগ ফাইলে ডায়গনিস্টিক যুক্ত করতে সক্ষম হওয়া উচিত।
অটোভিও ডাসিও

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.