9

Bu yüzden .NET 4.5, Windows 8 ve Windows Phone 8'yi hedefleyen bir taşınabilir sınıf kitaplığı yazıyorum. Yapım içeriği olarak projenin bir parçası olan bir metin dosyasından okumaya çalışıyorum. StreamLeader'ın PCL'lerde olduğunu görüyorum, ancak bir dosya yolu ile bir dosyadan akışı nasıl alacağımı anlayamıyorum. Beni doğru yapılara yönlendirecek biri varsa, bunu takdir ediyorum. Ayrıca, XML dosyaları için de yön verebilirdiniz. Şu an sadece metin dosyalarını okuyorum ama daha sonra XML'de çalışacağım. Teşekkürler!C# PCL Dosyadan Okuma

+0

içinde akışı içine yol açmak için iyi bir uygun StreamReader bir Stream? o zaman soru sadece "bir dosyayı açmak", ki bu da iyi olmalı, hayır mı? Aynı çoğu XML API'ları için iyi çalışır –

+0

Bir dosya yolu olan bir dize var, ancak StreamReader bir akışı (açıkçası) alır. Bir PCL'de, bir Akışı bir yolu nasıl açtığını soruyorum. –

+0

Dosyanızdaki derleme eylemini Gömülü Kaynak olarak değiştirmek mümkün ise, ilk yanıtta [burada] verilen yöntemi kullanabilirsiniz (http://stackoverflow.com/questions/10963781/how-to-read-a- kaynak dosya içinde-bir-taşınabilir sınıf-kütüphaneye). –

cevap

9

Taşınabilir sınıf kitaplıkları, hedeflediğiniz tüm platformlarda bulunan ad alanlarıyla ve sınıflarla çalışmanıza olanak tanır.
.Net 4.5 (tam masaüstü WinForms/WPF'yi kastettiğinizi varsayarsak), Windows 8 ve Windows Phone 8'in tümünün dosya erişimi çok farklıdır ve bunlar için farklı dosyalar vardır. Dosyalara erişilebildiği yerler de büyük ölçüde farklılık gösterir: gömülü içerikler; gömülü kaynaklar; izole depolama; paylaşımlı klasörler; tam dosya sistemi. Bunların hepsi bahsettiğiniz tüm platformlarda mevcut değildir. Kısa yanıt.

Kısa yanıt. Muhtemelen peşinde olanı yapamazsın. Dosya sistemi erişimi, platformlar arasında önemli ölçüde farklılık gösterir ve genellikle her platform için farklı şekilde yapılması gerekir.
Yapabilecekleriniz, PCL'nizin kullanabileceği dosya erişimi (açık, oku, kaydet, vb.) Için bir arabirim tanımlamak ve gerektiğinde PCL'ye ilettiğiniz platforma özgü örnekleri oluşturmaktır.

+1

Teşekkürler, .NET gibi bir üst düzey yapıda olmasını umuyorum, bu bir sorun olmazdı. Ama sınırlamanın nereden geldiğini anlıyorum. Ah, arayüzlere! Tekrar teşekkürler. –

9

Mat doğru. Ancak, PCL'den dosyalara erişmenizi sağlayan eklentiler vardır. Ben en iyi bahis olduğunu düşünüyorum şu anda yapıyoruz Ancak https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/Plugins/File

... en dsplaisted Taşınabilir Dosya Depolama kütüphanesinde @ - - http://nuget.org/packages/pclstorage - - Bu Nuget üzerinden ulaşılabilir

Benim kütüphane, MvvmCross biri sağlayan bu yazılır PCL ekibi Microsoft tarafından - ve PCLs

+0

MvvmCross harika! Çapraz platform çok daha kolay hale getirir! – Telavian