2010-12-29 17 views
6

मैं पृथक संग्रहण के साथ एक सरल परीक्षण करने की कोशिश कर रहा हूं, इसलिए मैं इसे विंडोज फोन 7 एप्लिकेशन के लिए उपयोग कर रहा हूं।सरल पृथक संग्रहण समस्या

परीक्षण जो मैं सेट बना रहा हूं वह एक बटन के साथ एक कुंजी और मूल्य बनाता है, और अन्य बटन के साथ टेक्स्टब्लॉक के पाठ के बराबर मान सेट होता है।

namespace IsoStore 
{ 
public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    public class AppSettings 
    { 
     IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings; 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      appSettings.Add("email", "[email protected]"); 
     } 

     private void button2_Click(object sender, RoutedEventArgs e) 
     { 
      textBlock1.Text = (string)appSettings["email"]; 
     } 
    }  
} 
} 

इस तरह मुझे इस त्रुटि देता है:

नेस्टेड प्रकार के माध्यम से 'IsoStore.MainPage' बाहरी प्रकार का एक गैर स्थिर सदस्य 'IsoStore.MainPage.AppSettings'

तो मैंने कोशिश की पहुंच नहीं सकते इस:

namespace IsoStore 
{ 
public partial class MainPage : PhoneApplicationPage 
{ 
    // Constructor 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 

    public class AppSettings 
    { 
     IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings; 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      appSettings.Add("email", "[email protected]"); 
     } 

    } 

    private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     textBlock1.Text = (string)appSettings["email"]; 
    } 
} 
} 

और बजाय मैं इस त्रुटि मिलती है:

नाम 'क्षुधा ettings 'वर्तमान संदर्भ में मौजूद नहीं है

तो मैं यहां क्या स्पष्ट समस्या देख रहा हूं?

आपके समय के लिए बहुत बहुत धन्यवाद।

उत्तर

4

appSettings button2_Click

के लिए

अद्यतन के बाद से IsolatedStorageSettings.ApplicationSettings स्टेटिक है वैसे भी सब पर संदर्भ के लिए कोई आवश्यकता नहीं है दायरे से बाहर है। बस इसे सीधे एक्सेस करें।

namespace IsoStore 
{ 

public partial class MainPage : PhoneApplicationPage 
{ 


    // Constructor 
    public MainPage() 
    { 
    InitializeComponent(); 


    } 


    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
    IsolatedStorageSettings.ApplicationSettings.Add("email", "[email protected]"); 
    } 



    private void button2_Click(object sender, RoutedEventArgs e) 
    { 
     textBlock1.Text = (string)IsolatedStorageSettings.ApplicationSettings["email"]; 
    } 
    } 
} 
+0

तो मुझे IsolatedStorage के "appSettings" उदाहरण को बनाने की भी आवश्यकता नहीं है? अगर मैंने किया तो क्या कोई फायदा होगा? – Dan

+0

@ डैन नोप वास्तव में नहीं। आप पठनीयता के लिए तर्क दे सकते हैं, लेकिन यह बहुत पतला है। –

+0

ठीक है, आपकी सभी मदद के लिए बहुत बहुत धन्यवाद। – Dan

0

इस कोड को आज़माएं, क्योंकि AppSettings क्लास को परिभाषित करने की कोई आवश्यकता नहीं है।

namespace IsoStore 
{ 
    public partial class MainPage : PhoneApplicationPage 
    { 
     IsolatedStorageSettings appSettings; 

     // Constructor 
     public MainPage() 
     { 
      InitializeComponent(); 
      appSettings = IsolatedStorageSettings.ApplicationSettings; 
     } 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      appSettings.Add("email", "[email protected]"); 
     } 

     private void button2_Click(object sender, RoutedEventArgs e) 
     { 
      textBlock1.Text = (string)appSettings["email"]; 
     } 
    } 
} 
+0

यह पूरी तरह से काम करता है। ऐसा क्यों है कि आपको स्थिर परिभाषा की आवश्यकता नहीं है? – Dan

+0

स्थिर दायरे का जीवनकाल कक्षा स्तर पर है, इसलिए जब मुख्य पृष्ठ सीएलआर द्वारा लोड किया जाएगा तो ऐपसेटिंग का स्थिर संदर्भ भी बनाया जाएगा। आपके कोड में, आप केवल मुख्यपृष्ठ सदस्य विधियों (गैर स्थैतिक) के भीतर ऐपसेटिंग चर का उपयोग कर रहे हैं, इसलिए यह सदस्य चर के रूप में भी बेहतर है, और ऑब्जेक्ट दायरे से बाहर होने पर यह नष्ट हो जाएगा। – ShahidAzim

+0

आपको सही है लेकिन ए) पृथक स्टोरेज सेटिंग्स। अनुप्रयोग सेटिंग्स पहले से ही स्थैतिक है जो आप एक गैर-स्थैतिक संदर्भ का उपयोग कर बचत कर रहे हैं, एक संपूर्ण 8 बाइट्स और बी है) चूंकि मेनपेज में शायद उसी जीवन चक्र का उपयोग होता है क्योंकि यह संभवतः वास्तव में एक बचत है 0 बाइट्स –

संबंधित मुद्दे