मैं कॉन्फ़िगरेशन मैनेजर का उपयोग कर कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता सेटिंग्स को जारी रखने की कोशिश कर रहा हूं।उपयोगकर्ता को कैसे लिखें। कॉन्फ़िगरेशन प्रबंधक के माध्यम से फ़ाइल कॉन्फ़िगर करें?
मैं इन सेटिंग्स को केवल उपयोगकर्ता को स्कॉप करना चाहता हूं, क्योंकि एप्लिकेशन परिवर्तनों को व्यवस्थापक विशेषाधिकारों के बिना Vista/Win 7 पर सहेजा नहीं जा सकता है।
ऐसा लगता है कि मुझे उपयोगकर्ता की कॉन्फ़िगरेशन मिलती है, जो कि विन 7 ([ड्राइव]: \ उपयोगकर्ता \ [उपयोगकर्ता नाम] \ AppData \ Local \ [ApplicationName] \ [Assembly नाम] [हैश] \ "में यहां सहेजा गया प्रतीत होता है। [ संस्करण \)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
जब भी मैं इस config मैं इस अपवाद प्राप्त करने के लिए सभी पर किसी भी परिवर्तन को बचाने की कोशिश:
InnerException: System.InvalidOperationException
Message="ConfigurationSection properties cannot be edited when locked."
Source="System.Configuration"
StackTrace:
at System.Configuration.SectionInformation.VerifyIsEditable()
at System.Configuration.MgmtConfigurationRecord.GetConfigDefinitionUpdates(Boolean requireUpdates, ConfigurationSaveMode saveMode, Boolean forceSaveAll, ConfigDefinitionUpdates& definitionUpdates, ArrayList& configSourceUpdates)
मैं इस config के लिए एक कस्टम ConfigurationSection जोड़ने की कोशिश की है। मैंने AppSettingsSection में जोड़ने का प्रयास किया है। जब भी मैं config.Save()
पर कॉल करता हूं तो यह ऊपर अपवाद फेंकता है।
कोई विचार?
मैंने प्रोजेक्ट-> सेटिंग डिज़ाइनर के माध्यम से एप्लिकेशन सेटिंग्सबेसबेस क्लास का उपयोग करने का प्रयास किया, लेकिन ऐसा नहीं लगता है कि आप इसके साथ कस्टम प्रकारों को सहेज सकते हैं। मैं कस्टम प्रकारों को बचाने की क्षमता के साथ समान कार्यक्षमता चाहता हूं।
बाहर निकलता है आप परियोजना-> सेटिंग्स डिजाइनर के साथ प्रकार के लिए कस्टम का उपयोग कर सकते हैं। वे उन्हें प्रकार के संवाद में सूचीबद्ध नहीं करते हैं, लेकिन यदि आप सही नाम/नामस्थान में टाइप करते हैं तो आप किसी भी प्रकार का उपयोग कर सकते हैं। प्रकार XmlSerializable या टाइपकॉन्टर के साथ स्ट्रिंग से कनवर्ट करने योग्य होना चाहिए। –