2010-10-20 4 views

risposta

11

Si supponga di avere il file test.xml incorporato nell'assieme. È possibile utilizzare il metodo GetManifestResourceStream per ottenere un puntamento flusso verso il contenuto:

class Program 
{ 
    static void Main() 
    { 
     var assembly = Assembly.GetExecutingAssembly(); 
     using (var stream = assembly.GetManifestResourceStream("ProjectName.test.xml")) 
     using (var reader = new StreamReader(stream)) 
     { 
      Console.WriteLine(reader.ReadToEnd()); 
     } 
    } 
} 

In questo modo il contenuto del file viene letto in memoria. È inoltre possibile memorizzarlo sul disco rigido e quindi accedere in base al percorso assoluto, ma ciò potrebbe non essere necessario in quanto si dispone già del contenuto del file.

+2

È necessario includere lo spazio dei nomi predefinito del progetto prima del nome file, non del nome del progetto. – Rich

+0

Se il file non esiste come risorsa incorporata, la variabile 'stream' sarà nullo. Ciò causerà un'eccezione durante la creazione di StreamReader. – Kilhoffer