Web.Config से चर पढ़ें


जवाबों:


71

मैं आपको सुझाव दूंगा कि अपने से web.config को संशोधित न करें, क्योंकि हर बार जब परिवर्तन होता है, तो यह आपके आवेदन को पुनः आरंभ करेगा।

हालाँकि आप web.config का उपयोग करके पढ़ सकते हैं System.Configuration.ConfigurationManager.AppSettings


धन्यवाद। मि। मोहम्मद, इसलिए आपने मुझे एक सार्वजनिक स्थान पर एक चर को बचाने के लिए क्या करने की सलाह दी है जिसे वेब एप्लिकेशन को पुनर्स्थापित किए बिना बदला जा सकता है? अग्रिम धन्यवाद
अमीरा अलसायद इस्माइल

1
आप ऐसे वेरिएबल्स को एनक्रिप्टेड XML फाइल में स्टोर कर सकते हैं।
वामीप

1
हाँ, XML फ़ाइल बेहतर विचार है। या आप इसे DB में स्टोर कर सकते हैं और application_start (Global.asax) में जोड़ सकते हैं, इसे एप्लिकेशन वेरिएबल में डाल सकते हैं और एप्लिकेशन में इनका उपयोग कर सकते हैं। ये चर अनुप्रयोग में केवल एक बार असाइन होते हैं और यदि आपका आवेदन पुनः आरंभ होता है, तो इन्हें फिर से सौंपा जाएगा।
मुहम्मद अख्तर

आपकी मदद के लिए बहुत बहुत धन्यवाद मिस्टरमिप और मि। मोहम्मद
अमीरा इस्माईल इस्माइल

143

निम्नलिखित web.config को देखते हुए:

<appSettings>
     <add key="ClientId" value="127605460617602"/>
     <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>

उदाहरण का उपयोग:

using System.Configuration;

string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];

17
+1 अच्छा जवाब। हालांकि एक नोट - आपको ToStringस्पष्ट रूप से कॉल करने की आवश्यकता नहीं है , क्योंकि AppSettingsstring
इंडेक्सर्स

16

यदि आप मूल बातें चाहते हैं, तो आप इसके माध्यम से कुंजियों तक पहुँच सकते हैं:

string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();

अपनी वेब कॉन्‍फ़‍िगर कीज़ तक पहुंचने के लिए मैं हमेशा अपने ऐप्लिकेशन में एक स्‍टैटिक क्लास बनाता हूं। इसका मतलब है कि मुझे जहां कहीं भी आवश्यकता होती है, मैं उन्हें एक्सेस कर सकता हूं और मैं अपने एप्लिकेशन पर स्ट्रिंग्स का उपयोग नहीं कर रहा हूं (यदि यह वेब कॉन्फ़िगरेशन में बदलता है तो मुझे उन्हें बदलने वाली सभी घटनाओं से गुजरना होगा)। यहाँ एक नमूना है:

using System.Configuration;

public static class AppSettingsGet
{    
    public static string myKey
    {
        get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
    }

    public static string imageFolder
    {
        get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
    }

    // I also get my connection string from here
    public static string ConnectionString
    {
       get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
    }
}

7

मान लें कि कुंजी <appSettings>नोड के अंदर समाहित है :

ConfigurationSettings.AppSettings["theKey"];

"लेखन" के रूप में - बस, ही रखो

Web.config उस के लिए डिज़ाइन नहीं किया गया है, यदि आप लगातार एक मूल्य बदलने जा रहे हैं, तो इसे एक स्थिर सहायक कक्षा में रखें।


3

रयान फ़ार्ले ने अपने ब्लॉग में इसके बारे में एक शानदार पोस्ट दी है, जिसमें सभी कारणों को शामिल किया गया है जो वेब में वापस नहीं लिखना है। फाइल फाइल्स: आपका .NET एप्लीकेशन की कॉन्फिग फाइल में लिखना


0

मैं अपने सभी ऐप को इस तरह से कॉल करने के लिए साइटकॉन्फ़िगरेशन क्लास हूं। मैं इसे साझा करता हूं अगर यह किसी की मदद करेगा।

"web.config" पर निम्न कोड जोड़ें

<configuration>
   <configSections>
     <!-- some stuff omitted here -->
   </configSections>
   <appSettings>
      <add key="appKeyString" value="abc" />
      <add key="appKeyInt" value="123" />  
   </appSettings>
</configuration>

अब आप अपने सभी एपसेटिंग मूल्य प्राप्त करने के लिए एक वर्ग को परिभाषित कर सकते हैं। इस तरह

using System; 
using System.Configuration;
namespace Configuration
{
   public static class SiteConfigurationReader
   {
      public static String appKeyString  //for string type value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyString");
         }
      }

      public static Int32 appKeyInt  //to get integer value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
         }
      }

      // you can also get the app setting by passing the key
      public static Int32 GetAppSettingsInteger(string keyName)
      {
          try
          {
            return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
        }
        catch
        {
            return 0;
        }
      }
   }
}

अब पिछली कक्षा के संदर्भ को जोड़ें और एक प्रमुख कॉल को bellow की तरह एक्सेस करें

string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.