2016-04-19 14 views
7

Ho bisogno di leggere un file di testo (risorsa incorporata) sul mio progetto PCL Xamarin.Forms. Sulle working with files documentazione Xamarin si suggerisce di questo codice:Come leggere un file di testo sul progetto PCL di Xamarin Forms?

var assembly = typeof(LoadResourceText).GetTypeInfo().Assembly; 
Stream stream = assembly.GetManifestResourceStream("WorkingWithFiles.PCLTextResource.txt"); 
string text = ""; 
using (var reader = new System.IO.StreamReader (stream)) { 
    text = reader.ReadToEnd(); 
} 

Il problema è che non riesco a trovare ciò che questo è LoadResourceText. Tutto quello che ho trovato è che è un tipo nella mia assemblea. Ma non riesco davvero a capire cosa significhi.

E non riesco a trovare da nessuna parte una spiegazione pratica chiara di ciò che devo fare.

Qualsiasi aiuto?

Grazie

+0

https://components.xamarin.com/view/pclstorage –

+0

stoccaggio PCL non funziona per i file di risorse incorporate esistenti. – Dpedrinha

risposta

6

Per leggere un file esistente è necessario sostituire LoadResourceText con una classe che avete nel vostro progetto PCL. Viene utilizzato per ottenere l'assembly che contiene il file incorporato. Sarà inoltre necessario sostituire WorkingWithFiles con lo spazio dei nomi del progetto PCL.

È necessario aggiungere using System.Reflection; per la compilazione del codice.

Se si desidera creare un file in fase di esecuzione e leggere in un secondo momento è possibile utilizzare PCLStorage Library come questo:

public async Task PCLStorageSample() 
{ 
    IFolder rootFolder = FileSystem.Current.LocalStorage; 
    IFolder folder = await rootFolder.CreateFolderAsync("MySubFolder", 
     CreationCollisionOption.OpenIfExists); 
    IFile file = await folder.CreateFileAsync("answer.txt", 
     CreationCollisionOption.ReplaceExisting); 
    await file.WriteAllTextAsync("42"); 
} 
+0

Grazie. Ho bisogno di caricare un file di risorse incorporato esistente. Se cambio LoadResourceText con qualsiasi classe nel mio progetto si lamenta che "Type non contiene una definizione per GetTypeInfo(). Sto guardando il progetto di esempio dai documenti e LoadResourceText non lo implementa troppo. È solo una normale pagina di contenuto Qualche idea? – Dpedrinha

+0

@Dpedrinha: Avete questo codice nel progetto PCL? – Giorgi

+0

Sì, all'interno del progetto portatile – Dpedrinha

Problemi correlati