2013-02-02 61 views
5

मैं एक WinRT ऐप पर काम कर रहा हूं जो वास्तव में एक गेम भी है। मुझे किसी फ़ाइल या किसी भी तरह से ऑडियो सेटिंग्स या प्लेयर आंकड़ों जैसी अलग-अलग जानकारी रखने की आवश्यकता है। अगर यह एक फाइल है, तो बस सेटिंग्स लिखें या ...? मेरे पास एक विचार है लेकिन मुझे लगता है कि रास्ता बहुत ही प्राथमिक है ... इसे प्राप्त करने का सबसे अच्छा तरीका क्या है?एक WinRT ऐप के लिए सेटिंग्स रखने के लिए सबसे अच्छा तरीका?

कोई भी मदद या सुझावों की बहुत सराहना की जाती है!

उत्तर

16

WinRT ऐप में डेटा को सहेजने के कुछ तरीके यहां दिए गए हैं, नाम में सेटिंग्स के साथ विधि शायद आप जो खोज रहे हैं! - बस अन्य लोगों को भी जोड़ा गया है, - यदि आप चाहें तो डेटा को क्रमबद्ध भी कर सकते हैं । यह कामकाजी कोड है- लेकिन त्रुटि प्रबंधन आदि को जोड़ना न भूलें। यह एक साधारण डेमो कोड है :)

सेटिंग्स के लिए, आप सरल सेटिंग्स को कुंजी और मान के रूप में सहेज सकते हैं, और अधिक जटिल सेटिंग्स के लिए आप एक का उपयोग कर सकते हैं कंटेनर। मैंने यहां दोनों उदाहरण प्रदान किए हैं =)

public class StorageExamples 
{ 
    public async Task<string> ReadTextFileAsync(string path) 
    { 
     var folder = ApplicationData.Current.LocalFolder; 
     var file = await folder.GetFileAsync(path); 
     return await FileIO.ReadTextAsync(file); 
    } 

    public async void WriteTotextFileAsync(string fileName, string contents) 
    { 
     var folder = ApplicationData.Current.LocalFolder; 
     var file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); 
     await FileIO.WriteTextAsync(file, contents); 
    } 

    public void SaveSettings(string key, string contents) 
    { 
     ApplicationData.Current.LocalSettings.Values[key] = contents; 
    } 

    public string LoadSettings(string key) 
    { 
     var settings = ApplicationData.Current.LocalSettings; 
     return settings.Values[key].ToString(); 
    } 
    public void SaveSettingsInContainer(string user, string key, string contents) 
    { 
     var localSetting = ApplicationData.Current.LocalSettings; 

     localSetting.CreateContainer(user, ApplicationDataCreateDisposition.Always); 

     if (localSetting.Containers.ContainsKey(user)) 
     { 
      localSetting.Containers[user].Values[key] = contents; 
     } 
    } 
} 
+0

आपको बहुत धन्यवाद, लेकिन मेरा प्रश्न अब है: क्या मैं किसी भी फाइल में किसी भी तरह से सेटिंग्स को सहेज नहीं सकता ...? फ़ाइल से टेक्स्टलाइन पढ़ने के लिए जब मुझे ऐप लॉन्च पर आवश्यकता होती है या सहेजने के लिए उस फ़ाइल को पाठ के रूप में फिर से लिखना है? क्या यह एक अच्छा अभ्यास है? – VasileF

+0

कंटेनर आपको वह संभावना देगा- बस उन चाबियों के मान को अपडेट करें जिन्हें आप बदलना चाहते हैं। –

+0

और यदि बहुत सारे डेटा हैं तो आप SQLite जैसे छोटे डेटाबेस का भी उपयोग कर सकते हैं, इसके लिए एक नेट रैपर है, - बस सुनिश्चित करें कि आप एसिंक कार्यान्वयन का उपयोग करते हैं। जो भी आपने हमें बताया है उसके आधार पर मैं अभी भी समग्र/कंटेनर सेटिंग्स का उपयोग करने की अनुशंसा करता हूं। –

3

एमएसडीएन में an article on using app settings in Windows Store apps है।

Windows.UI.ApplicationSettings नामस्थान में आपको आवश्यक सभी कक्षाएं शामिल हैं।

कक्षाएं प्रदान करता है जो डेवलपर्स को विंडोज शैल की सेटिंग फलक में दिखाई देने वाली ऐप सेटिंग्स को परिभाषित करने की अनुमति देता है। सेटिंग फलक उपयोगकर्ताओं के लिए ऐप सेटिंग्स तक पहुंचने के लिए एक सतत स्थान प्रदान करता है।

असल में ये कक्षाएं आपको एप्लिकेशन सेटिंग्स स्टोर करने देती हैं और उन्हें सभी एप्लिकेशन सेटिंग्स के लिए मानक स्थान पर हुक करने देती हैं। आपके उपयोगकर्ताओं को कुछ नया सीखना नहीं है, सेटिंग्स अपेक्षित जगह पर होगी।