2009-07-23 1 views
8

मैंने एक कक्षा लिखी है जो मुझे ऐप सेटिंग्स में मूल्यों को आसानी से पढ़ने और लिखने की अनुमति देनी चाहिए:ऐप खुला होने पर एप्लिकेशन सेटिंग्स (सेटिंग्स) कैसे बदलें?

public static class SettingsManager 
    { 
     public static string ComplexValidationsString 
     { 
      get { return (string)Properties.Settings.Default["ComplexValidations"]; } 
      set 
      { 
       Properties.Settings.Default["ComplexValidations"] = value; 
       Properties.Settings.Default.Save(); 
      } 
     } 

समस्या यह है कि मान वास्तव में सहेजा नहीं गया है, मेरा मतलब है कि जब मैं एप्लिकेशन से बाहर निकलता हूं तो यह बदला नहीं जाता है और इसे फिर से चलाओ। यह सुनिश्चित करने के लिए मैं क्या कर सकता हूं कि सहेजा गया मूल्य बंद होने और फिर से खोलने के बीच बनी रहती है?

+1

यह बचाया जाना चाहिए, मुझे अपनी आंखों में इसके साथ कोई समस्या नहीं दिख रही है। – ThePower

उत्तर

5

आपको जांचना चाहिए

Properties.Settings.Default.Properties["ComplexValidations"].IsReadOnly 

यह शायद सच है, यह क्या रोलाण्ड के साथ "आवेदन स्कोप" का अर्थ है। बचाओ चुपचाप विफल हो जाएगा। प्रोजेक्ट | प्रॉपर्टीज | सेटिंग्स, 3 कॉलम पर एक नज़र डालें।

11

सेटिंग्स गुंजाइश उपयोगकर्ता नहीं आवेदन होना चाहिए

+0

आपका क्या मतलब है? – agnieszka

+0

सेटिंग्स.designer.cs में अपनी सेटिंग से पहले जोड़ें [वैश्विक :: सिस्टम। कॉन्फ़िगरेशन.यूसर स्कोप्डसेटिंग एट्रिब्यूट()] या बस सेटिंग्स 1 में सेट करें। सेटिंग्स – Woland

2

आप यकीन है कि यह परिवर्तनों को सहेजे नहीं कर रहा है कर रहे हैं? बिन फ़ोल्डर में [programName] .exe.config फ़ाइल अद्यतन नहीं की जाएगी। उपयोग की जाने वाली Acutal फ़ाइल आमतौर पर C:\Documents and Settings\[user]\Local Settings\Application Data\[company name]\[application].exe[hash string]\[version]\user.config में डाल दी जाती है। मुझे पता है कि मैंने इस तरह की चीज की कोशिश की, मुझे यह महसूस करने में थोड़ी देर लग गई कि यह वह फ़ाइल थी जो अद्यतन हो रही थी।

+0

जो भी फ़ाइल अपडेट हो रही है, परिणामस्वरूप मैं देखना चाहता हूं कॉम्प्लेक्स वैलिडेशन स्ट्रिंग का मान पिछली बार ऐप खोले जाने पर मूल्य सेट पर सेट किया जाना चाहिए। – agnieszka

0

मैं सिर्फ एक उपयोगकर्ता सेटिंग परीक्षण किया है और आप दो बार इस कंसोल अनुप्रयोग चलाने अगर यह एक समान होती है:

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(Settings1.Default.Setting); 
     Console.ReadLine(); 
     Settings1.Default.Setting = "A value different from app.config's"; 
     Settings1.Default.Save(); 
    } 
} 

बस इसे बाहर का प्रयास करें। इसमें एक मिनट नहीं लगेगा।