2010-03-23 16 views
10

में कस्टम अनुभाग लिखना मैं कुछ कस्टम डेटा को एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल में सहेजना चाहता हूं और मुझे app.config में कुछ कस्टम अनुभाग बनाना होगा। App.config से कस्टम डेटा पढ़ना आसान काम है, लेकिन मैं अपने प्रोग्राम से ऐप.कॉन्फिग में जानकारी नहीं लिख सकता। इस समस्या का समाधान खोजने के लिए मैं परीक्षण प्रोजेक्ट बनाता हूं। अपने CustomConfigSection मेंapp.config

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

उत्तर

4

पहले ओवरराइड IsReadyOnly() झूठी वापस जाने के लिए:

कस्टम खंड app.config से डाटा पढ़ने के लिए मैं इस लेख से जानकारी का उपयोग किया।

कर लेने के बाद कि आप इस तरह से कुछ करने के लिए सक्षम होना चाहिए (इस ASP.NET के लिए है, लेकिन यह transferably हो सकता है):

System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

दें कि एक कोशिश।

+2

क्या आपका मतलब है 'IsReadOnly() '' false' वापस करने के लिए ओवरराइड करें? – FrustratedWithFormsDesigner

+0

हाँ। मैं एक वैली हूँ। उसे संपादित। – Pike65

+0

बहुत बहुत धन्यवाद! यह बहुत आसान और बहुत उपयोगी है! –

5

आपको वास्तव में app.config पर कुछ भी लिखना नहीं चाहिए, क्योंकि यदि आप ऐसा करते हैं तो आप केवल अपने ऐप का उपयोग केवल प्रशासकों को ही सीमित कर रहे हैं। उपयोगकर्ता प्रोफ़ाइल फ़ोल्डर में स्थित एक अलग .config फ़ाइल में सेटिंग लिखना बेहतर अभ्यास है, उदा। <profiles>\<user name>\Application Data\<your product name>

+0

धन्यवाद। मुझे लगता है कि एप्लिकेशन के उपयोगकर्ता को केवल पढ़ने और अनुमतियों की आवश्यकता है। अगर मैं गलत हूं, तो कृपया मुझे सही करें। –

+1

स्पष्टीकरण के लिए: 'app.config' फ़ाइल प्रोग्राम फ़ाइलों के नीचे एक फ़ोल्डर में स्थापित है। डिफ़ॉल्ट रूप से यह मानक उपयोगकर्ताओं को लेखन पहुंच की अनुमति न देने के लिए सेट अप किया गया है। यद्यपि .NET आपको सामान्य कॉन्फ़िगरेशन एपीआई के माध्यम से किसी भी '.config' फ़ाइल को लिखने की अनुमति देगा, अगर आप वास्तव में इसे मानक उपयोगकर्ता के रूप में चलाने का प्रयास करते हैं तो आपको एक सुरक्षा अपवाद मिलेगा। –

+0

धन्यवाद। मुझे यह याद होगा। मैं डेस्कटॉप अनुप्रयोगों के लिए नहीं, मेरी विंडोज सेवाओं के लिए app.config में लिखने के लिए अवसर का उपयोग करूंगा। –