Windows Phone tarafında dosya işlemleri console/web tarafında alıştığımızdan biraz daha farklı ilerliyor. Uygulamamıza özel olarak ayrılmış bir alanda okuma/yazma işlemlerimizi yapabiliyoruz. Bu alana isolated storage denir.
Isolated Storage Nedir ?
Isolated storage sadece sizin uygulamanız için oluşturulan ve sadece sizin uygulamanız tarafından okunabilen diskteki bir alanıdır. Aslında bu olay silverlight içerisinde de bulunmaktadır.
Isolated Storage tarafında kullanabileceğimiz 3 temel yapıya değinmek gerekirse bunlar : IsolatedStorageSettings, IsolatedFileStream ve IsolatedStorageFile
IsolatedStorageSettings
Bu yapı anahtar ve değer şeklinde kullanılabilen bir yapıdır. Mesela kullanıcının uygulama ilk açıldığında seçtiği ülkeyi burada saklayıp sonradan tekrar kullanabilirsiniz. Ben örnekte bir ülke saklamama rağmen eğer isterseniz bir objeyide saklayabilirsiniz.
IsolatedStorageSettings’e kaydetme
IsolatedStorageSettings.ApplicationSettings[ulke] = "Turkey" ; //Save işlemi IsolatedStorageSettings.ApplicationSettings.Save(); |
Isolated Storage Settings’den okuma
if (IsolatedStorageSettings.ApplicationSettings.Contains( "ulke" )) //null kontrolü { string sonuc = ( string )IsolatedStorageSettings.ApplicationSettings[ "ulke" ]; } |
IsolatedStorageFile – IsolatedStorageStream
Dosya Kaydetme
using (IsolatedStorageFile mystorage= IsolatedStorageFile.GetUserStoreForApplication())
{ using (IsolatedStorageFileStream rawStream = "database.txt" )) { StreamWriter writer = new StreamWriter(rawStream); writer.WriteLine( "Dosya başarıyla kaydedildi.." ); //kayıt işlemi writer.Close(); }
} |
Dosya Okuma
string result = null ; using (IsolatedStorageFile { if ( "database.txt" ) { using (IsolatedStorageFileStream rawStream = { StreamReader reader = new StreamReader(rawStream); result = reader.ReadLine(); reader.Close(); } } } |
Isolated storage işlemlerini kolaylaştıran birde sınıf yayınlanmış codeplex üzerinden Dll’ini buradan indirip projenize eklemeniz yeterli oldukça pratik bir şekilde işleri hallediyor.
Hocam IsolatedStorage içerisinde veritabanı saklayabiliyor musunuz?