2013-10-03 5 views
9

मैंने अपने ASP.net प्रोजेक्ट के लिए कुछ एप्लिकेशन सेटिंग्स को स्टोर करने के लिए Properties.Settings का उपयोग करने का निर्णय लिया है। हालांकि, डेटा को संशोधित करने का प्रयास करते समय, मुझे The property 'Properties.Settings.Test' has no setter त्रुटि मिलती है, क्योंकि यह उत्पन्न होता है, मुझे नहीं पता कि मुझे इसे बदलने के लिए क्या करना चाहिए क्योंकि मेरे पिछले सी # प्रोजेक्ट्स में ये समस्याएं नहीं हैं।गुण। सेटिंग्स में कोई सेटटर

उत्तर

17

मेरा अनुमान है कि आपने User दायरे के बजाय Application स्कोप के साथ संपत्ति को परिभाषित किया है। एप्लिकेशन-स्तरीय गुण केवल-पढ़ने के लिए हैं, और केवल web.config फ़ाइल में संपादित किए जा सकते हैं।

मैं एएसपी.नेट परियोजना में Settings कक्षा का उपयोग नहीं करता। जब आप web.config फ़ाइल पर लिखते हैं, तो ASP.NET/IIS AppDomain को रीसायकल करता है। यदि आप नियमित रूप से सेटिंग्स लिखते हैं, तो आपको कुछ अन्य सेटिंग्स स्टोर (उदा। अपनी खुद की एक्सएमएल फाइल) का उपयोग करना चाहिए।

-1

यहाँ: http://msdn.microsoft.com/en-us/library/bb397755.aspx

आपकी समस्या के लिए समाधान है।

+0

कि मुद्दा नहीं है, मेरी समस्या यह है कि 'Settings.Default.LastPayNumber + = 1;' कहते हैं '' – ChaoticLoki

+0

वह एक एएसपी में है "संपत्ति 'Properties.Settings.LastPayNumner' नहीं सेटर है" .NET वेब साइट। आपका लिंक लागू नहीं होता है। –

2

जैसा कि एली अरबेल ने पहले ही कहा है कि आप अपने आवेदन कोड से web.config में लिखे गए मानों को संशोधित नहीं कर सकते हैं। आप इसे मैन्युअल रूप से ही कर सकते हैं लेकिन फिर एप्लिकेशन पुनरारंभ होगा और यह ऐसा कुछ है जिसे आप नहीं चाहते हैं।

यहां एक साधारण वर्ग है जिसका उपयोग आप मूल्यों को संग्रहीत करने और उन्हें पढ़ने और संशोधित करने में आसान बनाने के लिए कर सकते हैं। अगर आप एक्सएमएल या डेटाबेस से पढ़ रहे हैं और इस पर निर्भर करता है कि आप संशोधित मूल्यों को स्थायी रूप से संग्रहीत करना चाहते हैं या नहीं, तो अपनी आवश्यकताओं को सुइट करने के लिए बस कोड को अपडेट करें।

public class Config 
{ 
    public int SomeSetting 
    { 
     get 
     { 
      if (HttpContext.Current.Application["SomeSetting"] == null) 
      { 
       //this is where you set the default value 
       HttpContext.Current.Application["SomeSetting"] = 4; 
      } 

      return Convert.ToInt32(HttpContext.Current.Application["SomeSetting"]); 
     } 
     set 
     { 
      //If needed add code that stores this value permanently in XML file or database or some other place 
      HttpContext.Current.Application["SomeSetting"] = value; 
     } 
    } 

    public DateTime SomeOtherSetting 
    { 
     get 
     { 
      if (HttpContext.Current.Application["SomeOtherSetting"] == null) 
      { 
       //this is where you set the default value 
       HttpContext.Current.Application["SomeOtherSetting"] = DateTime.Now; 
      } 

      return Convert.ToDateTime(HttpContext.Current.Application["SomeOtherSetting"]); 
     } 
     set 
     { 
      //If needed add code that stores this value permanently in XML file or database or some other place 
      HttpContext.Current.Application["SomeOtherSetting"] = value; 
     } 
    } 
} 
संबंधित मुद्दे