2013-02-02 26 views
5

Aslında bir oyun olan bir WinRT uygulaması üzerinde çalışıyorum. Ses ayarları veya oyuncu istatistikleri gibi farklı bilgileri bir dosya türünde veya bir şekilde tutmalıyım. Eğer bir dosyaysa, sadece ayarları yazın veya ...? Bir fikrim var ama bence çok basit ... Bunu elde etmenin en iyi yolu nedir?Bir WinRT Uygulaması için Ayarları Tutmanın En İyi Yolu?

Her türlü yardım veya öneriniz için teşekkür ederiz!

cevap

16

Verileri bir WinRT uygulamasında kaydetmenin bazı yolları, adında Ayarlar olan yöntemin muhtemelen sizin aradığınız şeydir! - sadece diğerlerini de ekledik, - ayrıca isterseniz verileri seri hale getirebilirsiniz . Bu, kod çalışıyor ancak hata işleme vs. eklemeyi unutmayın. Basit bir demo kodu var :)

Ayarlara gelince, basit ayarları anahtar ve değerler olarak kaydedebilir ve daha karmaşık ayarlar için bir kap. Burada iki örnek verdim =)

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

Çok teşekkür ederim, ama şu an sorum şu: Bir dosyadaki tüm ayarları bir şekilde kaydedemiyorum ...? Sadece uygulama başlatıldığında onlara ihtiyaç duyduğumda dosyadan metin satırlarını okumak veya o dosyayı ne zaman kaydedileceği gibi yeniden yazmak mı? Bu iyi bir uygulama mı? – VasileF

+0

Kapsayıcı size bu olanağı sunar - sadece değiştirmek istediğiniz tuşların değerini güncelleyin. –

+0

Ve çok fazla veri varsa SQLite gibi küçük bir veritabanı da kullanabilirsiniz, bunun için bir .Net sarıcı var, - sadece async uygulamasını kullandığınızdan emin olun. Kompozit/kapsayıcı ayarlarının bize anlattıklarınıza göre kullanılmasını tavsiye ediyorum. –

3

MSDN, an article on using app settings in Windows Store apps sahiptir.

Windows.UI.ApplicationSettings ad alanı, ihtiyacınız olan tüm sınıfları içerir.

Geliştiricilerin Windows kabuğunun ayarlar bölmesinde görünen uygulama ayarlarını tanımlamasına izin veren sınıflar sağlar. Ayarlar bölmesi, kullanıcıların uygulama ayarlarına erişmeleri için tutarlı bir yer sağlar. Temel olarak bu sınıflar uygulama ayarlarını depolamanıza ve tüm uygulama ayarları için standart yere bağlamanıza izin verir.

Kullanıcılarınız yeni bir şey öğrenmek zorunda değil, ayarlar beklenen yerde olacak.

İlgili konular