दिलचस्प पोस्ट
मेरे दृश्य के फ्रेम को मैन्युअल रूप से viewDidLoad में क्यों सेट किया जा रहा है? सी # में वेरिएबल नामों में @ वर्ण का उपयोग / अर्थ क्या है? एंड्रॉइड पॉपअप विंडो बर्खास्तगी अतिरिक्त अनुरोध भेजने वाले क्रोम के साथ क्या करना है? आईफोन वॉल्यूम बटन पर प्रोग्राम पहुंच .NET 2.0 रनटाइम पर LINQ संकल्प एक दूसरे के बाद वादे (यानी अनुक्रम में)? सी # में "दिनांक समय" का क्या अर्थ है? "जावास्क्रिप्ट: शून्य (0)" क्या होता है? स्विफ्ट – स्ट्रिंग टू इन्ट को परिवर्तित करना होम कुंजी को अक्षम कैसे करें एंड्रॉइड में टच की स्थिति कैसे प्राप्त करें? सी # में गतिशील सरणी jquery चेतन पृष्ठभूमि की स्थिति कैसे सी # में एक फ़ाइल को पढ़ने और लिखने के लिए

App.config या web.config से नेट पर सेटिंग पढ़ना

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

मैंने पाया है कि

 ConfigurationSettings.AppSettings.Get("MySetting") 

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

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

 ConfigurationManager.AppSettings["MySetting"] 

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

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

वेब के समाधान से एकत्रित समाधान "App.config या web.config से नेट पर सेटिंग पढ़ना"

आपको System.Configuration संदर्भ को जोड़ने की आवश्यकता होगी। अपने प्रोजेक्ट के संदर्भ फ़ोल्डर में System.Configuration

आपको अप्रचलित ConfigurationSettings ConfigurationManager पर ConfigurationManager का उपयोग करना चाहिए।

नमूना 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"]; 

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

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

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

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

 string keyvalue= Properties.Settings.Default.keyname; 

अधिक जानकारी के लिए एप्लिकेशन सेटिंग प्रबंधित करना देखें

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

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

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

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

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

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

  • SomeDll
  • SomeExe

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

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

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

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

    स्ट्रिंग मान = गुण। सेटिंग्स। डीफॉल्ट.कीनाम;

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

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

इसे इस्तेमाल करे:

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

Web.config में अगले संरचना होनी चाहिए:

 <configuration> <appSettings> <add key="keyname" value="keyvalue" /> </appSettings> </configuration> 

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

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

मैं आपको इस कॉल के लिए एक रैपर बनाने की सलाह देता हूं। एक ConfigurationReaderService तरह कुछ और इस वर्ग को पाने के लिए निर्भरता इंजेक्शन का उपयोग करें। इस तरह आप परीक्षण प्रयोजनों के लिए इस कॉन्फ़िगरेशन फ़ाइलों को अलग करने में सक्षम होंगे।

तो ConfigurationManager.AppSettings["something"]; सुझाव दिया है और इस मूल्य को वापस। यदि इस .config फ़ाइल में कोई भी कुंजी उपलब्ध नहीं है, तो आप इस विधि से कुछ प्रकार की डिफ़ॉल्ट वापसी बना सकते हैं।

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

कॉन्फ़िग:

 <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>(); 

जैसा कि मैंने सिस्टम सेटिंग्स पर आवरण वर्ग बनाकर व्यवस्थित तरीके से ऐप सेटिंग्स चर का उपयोग करने के लिए सबसे अच्छा तरीका पाया। नीचे के रूप में कॉन्फ़िगरेशन

 public class BaseConfiguration { protected static object GetAppSetting(Type expectedType, string key) { string value = ConfigurationManager.AppSettings.Get(key); try { if (expectedType == typeof(int)) return int.Parse(value); if (expectedType == typeof(string)) return value; throw new Exception("Type not supported."); } catch (Exception ex) { throw new Exception(string.Format("Config key:{0} was expected to be of type {1} but was not.", key, expectedType), ex); } } } 

अब हम निम्न के रूप में अन्य वर्गों का उपयोग करके हार्ड कोड वाले नामों के ज़रिए आवश्यक सेटिंग्स चर तक पहुंच सकते हैं

 public class ConfigurationSettings:BaseConfiguration { #region App setting public static string ApplicationName { get { return (string)GetAppSetting(typeof(string), "ApplicationName"); } } public static string MailBccAddress { get { return (string)GetAppSetting(typeof(string), "MailBccAddress"); } } public static string DefaultConnection { get { return (string)GetAppSetting(typeof(string), "DefaultConnection"); } } #endregion App setting #region global setting #endregion global setting } 

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

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

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

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

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

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

मैं हमेशा सभी कॉन्फ़िगरेशन मानों के लिए घोषित typesafe गुणों के साथ एक IConfig इंटरफ़ेस बनाएँ एक कॉन्फिग कार्यान्वयन क्लास फिर सिस्टम। कॉन्फ़िगरेशन के लिए कॉल को रैपर करता है। आपके सभी सिस्टम। कॉन्फ़िगरेशन कॉल अब एक ही स्थान पर हैं ताकि यह आसान और क्लीनर बनाए रखे और ट्रैक किया जा सके कि किस फ़ील्ड का उपयोग किया जा रहा है और उनके डिफ़ॉल्ट मान घोषित किए जा रहे हैं। मैं आम डेटा प्रकारों को पढ़ने और पार्स करने के लिए निजी सहायक विधियों का एक सेट लिखता हूं।

IoC फ्रेमवर्क का उपयोग करके आप किसी भी एन्कॉन्फ़िग फ़ील्ड को अपने ऐप में कहीं भी इंटरफ़ेस को एक क्लास कन्स्ट्रक्टर के पास भेज सकते हैं। आप फिर भी अपने यूनिट परीक्षणों में IConfig इंटरफ़ेस के नकली क्रियान्वयन करने में सक्षम हैं ताकि आप अब अपने App.config या Web.config फ़ाइल को छूने के बिना विभिन्न कॉन्फ़िगरेशन मानों और मूल्य संयोजनों का परीक्षण कर सकें।

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

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

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

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

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

पूर्व के लिए:

 <applicationSettings> <MyApp.My.MySettings> <setting name="Printer" serializeAs="String"> <value>1234 </value> </setting> </MyApp.My.MySettings> </applicationSettings> Dim strPrinterName as string= My.settings.Printer