c# - .net में app.config या web.config से सेटिंग पढ़ना




appsettings (13)

अपनी कक्षा लाइब्रेरी पर राइट क्लिक करें, और मेनू से "संदर्भ जोड़ें" विकल्प चुनें; और अंततः .NET टैब से, सिस्टम का चयन करें। कॉन्फ़िगरेशन। इसमें सिस्टम शामिल होगा। कॉन्फ़िगरेशन डीएल आपकी परियोजना में।

मैं एक सी # कक्षा पुस्तकालय पर काम कर रहा हूं जिसे web.config या app.config फ़ाइल से सेटिंग्स को पढ़ने में सक्षम होना चाहिए (इस पर निर्भर करता है कि डीएलएल को एएसपी.नेट वेब एप्लिकेशन या विंडोज फॉर्म एप्लिकेशन से संदर्भित किया गया है या नहीं)।

मैंने पाया है

ConfigurationSettings.AppSettings.Get("MySetting")

काम करता है, लेकिन उस कोड को माइक्रोसॉफ्ट द्वारा बहिष्कृत के रूप में चिह्नित किया गया है।

मैंने पढ़ा है कि मुझे इसका उपयोग करना चाहिए:

ConfigurationManager.AppSettings["MySetting"]

हालांकि, System.Configuration.ConfigurationManager क्लास सी # क्लास लाइब्रेरी प्रोजेक्ट से उपलब्ध प्रतीत नहीं होता है।

क्या किसी को पता है कि ऐसा करने का सबसे अच्छा तरीका क्या है?


आप एक डीएलएल में App.config फ़ाइल जोड़ सकते हैं। App.Config केवल निष्पादन योग्य परियोजनाओं के लिए काम करता है, क्योंकि सभी डीएल निष्पादन फ़ाइल से कॉन्फ़िगरेशन फ़ाइल से कॉन्फ़िगरेशन लेते हैं।

मान लीजिए कि आपके समाधान में दो परियोजनाएं हैं:

  • SomeDll
  • SomeExe

आपकी समस्या इस तथ्य को जारी की जा सकती है कि आप कुछ डीएलएल में app.config सहित हैं और कुछ नहीं हैं। SomeDll SomeExe प्रोजेक्ट से कॉन्फ़िगरेशन को पढ़ने में सक्षम है।


आपको प्रोजेक्ट में सिस्टम के संदर्भ में जोड़ना होगा। कॉन्फ़िगरेशन असेंबली।


इसके अलावा, आप formo उपयोग कर सकते हैं:

कॉन्फ़िग:

<appSettings>
    <add key="RetryAttempts" value="5" />
    <add key="ApplicationBuildDate" value="11/4/1999 6:23 AM" />
</appSettings>

कोड:

dynamic config = new Configuration();
var retryAttempts1 = config.RetryAttempts;                 // returns 5 as a string
var retryAttempts2 = config.RetryAttempts(10);             // returns 5 if found in config, else 10
var retryAttempts3 = config.RetryAttempts(userInput, 10);  // returns 5 if it exists in config, else userInput if not null, else 10
var appBuildDate = config.ApplicationBuildDate<DateTime>();

एक और संभावित समाधान:

var MyReader = new System.Configuration.AppSettingsReader();
string keyvalue = MyReader.GetValue("keyalue",typeof(string)).ToString();

कॉन्फ़िगर से पढ़ें:

आपको कॉन्फ़िगरेशन का संदर्भ जोड़ना होगा

  1. अपनी परियोजना पर "गुण" खोलें
  2. "सेटिंग्स" टैब पर जाएं
  3. "नाम" और "मूल्य" जोड़ें
  4. निम्नलिखित कोड का उपयोग कर मूल्य प्राप्त करें:

    स्ट्रिंग मान = Properties.Settings.Default.keyname;

कॉन्फ़िगर में सहेजें:

   Properties.Settings.Default.keyName = value;
   Properties.Settings.Default.Save();

ढांचे 4.5 और 4.6 के लिए अद्यतन; निम्नलिखित काम नहीं करेंगे:

string keyvalue=System.Configuration.ConfigurationManager.AppSettings["keyname"];

अब गुणों के माध्यम से सेटिंग क्लास तक पहुंचें:

string keyvalue= Properties.Settings.Default.keyname;

अधिक जानकारी के लिए प्रबंधन अनुप्रयोग सेटिंग्स देखें।


नमूना App.config के लिए नीचे की तरह:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="countoffiles" value="7" />
    <add key="logfilelocation" value="abc.txt" />
  </appSettings>
</configuration>

नीचे दिखाए गए कोड का उपयोग करके आप उपर्युक्त ऐप सेटिंग्स पढ़ते हैं:

using System.Configuration;

आपको सिस्टम के संदर्भ में भी एक संदर्भ जोड़ने की आवश्यकता हो सकती है। अगर आपके पास पहले से कोई नहीं है तो कॉन्फ़िगरेशन। फिर आप इस तरह के मानों तक पहुंच सकते हैं:

string configvalue1 = ConfigurationManager.AppSettings["countoffiles"];
string configvalue2 = ConfigurationManager.AppSettings["logfilelocation"];

उम्मीद है की यह मदद करेगा!


बस पूर्णता के लिए, केवल वेब प्रोजेक्ट के लिए एक और विकल्प उपलब्ध है:

System.Web.Configuration.WebConfigurationManager.AppSettings["MySetting"]

इसका लाभ यह है कि इसे जोड़ने के लिए अतिरिक्त संदर्भ की आवश्यकता नहीं है, इसलिए कुछ लोगों के लिए बेहतर हो सकता है।


मुझे एक ही समस्या थी, बस उन्हें इस तरह पढ़ें:

System.Configuration.ConfigurationSettings.AppSettings["MySetting"]

मैं इस मुद्दे के लिए कुछ दिनों के लिए एक फिक्स खोजने की कोशिश कर रहा हूं। मैं web.config में एप्सेटिंग टैग के भीतर एक कुंजी जोड़कर इसे हल करने में सक्षम था। सहायक का उपयोग करते समय यह .dll को ओवरराइड करना चाहिए।

<configuration>
<appSettings>
<add key="loginUrl" value="~/RedirectValue.cshtml" />
<add key="autoFormsAuthentication" value="false"/>
</appSettings>
</configuration>

मैं इसका उपयोग कर रहा हूं और यह मेरे लिए अच्छा काम करता है

textBox1.Text = ConfigurationManager.AppSettings["Name"];

web.config वेब अनुप्रयोगों के साथ प्रयोग किया जाता है। web.config डिफ़ॉल्ट रूप से वेब एप्लिकेशन के लिए आवश्यक कई कॉन्फ़िगरेशन होगा। आपके वेब एप्लिकेशन के तहत प्रत्येक फ़ोल्डर के लिए आपके पास web.config हो सकता है।

windows. अनुप्रयोगों के लिए app.config का उपयोग किया जाता है। जब आप vs.net में एप्लिकेशन बनाते हैं, तो इसका स्वचालित रूप से <appname>.exe.config नाम बदल दिया जाएगा और यह फ़ाइल आपके एप्लिकेशन के साथ वितरित की जानी चाहिए।

आप कॉन्फ़िगरेशन फ़ाइलों दोनों से app settings मानों को कॉल करने के लिए एक ही विधि का उपयोग कर सकते हैं:

System.Configuration.COnfigurationSettings.AppSettings["Key"]




appsettings