2012-01-20 17 views
9

Sto provando a incorporare un file XML in un'applicazione console C# facendo clic con il pulsante destro del mouse su file -> Crea azione -> Risorsa incorporata.Utilizzo di risorse incorporate nell'applicazione console C#

Come accedere a questa risorsa incorporata?

XDocument XMLDoc = XDocument.Load(???); 

Edit: Ciao a tutti, nonostante tutte le Bashing questa domanda ha ricevuto, ecco un aggiornamento.

sono riuscito a farlo funzionare utilizzando

XDocument.Load(new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Namespace.FolderName.FileName.Extension"))) 

Non ha funzionato in precedenza, perché il nome della cartella che contiene il file di risorse all'interno del progetto non è stata inclusa (nessuno degli esempi che ho trovato sembrava di avere quel).

Grazie a tutti coloro che hanno cercato di aiutare.

+2

Si intende qualcosa come [questo] (http://support.microsoft.com/kb/319292) o [questi possibili duplicati] (https://www.google.com/#sclient=psy-ab&hl = it & source = HP & q = accesso + incorporato + risorse + c% 23 + sito: stackoverflow.com & PBX = 1 & oq = accesso + incorporato + risorse + c% 23 + sito: stackoverflow.com & aq = f & aqi = & AQL = & gs_sm = e & gs_upl = 3304l10983l0l11177l29l26l2l0l0l0l384l5613l1.14.7 .4l28l0 & BAV = on.2, or.r_gc.r_pw., cf.osb & fp = 4fe41488848db57f & biw = 1366 & BiH = 677)? –

+0

possibile duplicato di [Come posso scoprire il "percorso" di una risorsa incorporata?] (Http://stackoverflow.com/questions/27757/how-can-i-discover-the-path-of-an-embedded- risorsa) –

+1

Esattamente quello che stavo cercando. È sfortunato che sia stato chiuso come troppo localizzato. –

risposta

10

Qualcosa in questo senso

using System.IO; 
using System.Reflection; 
using System.Xml; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("ConsoleApplication1.XMLFile1.xml"); 
      StreamReader reader = new StreamReader(stream); 

      XmlDocument doc = new XmlDocument(); 
      doc.LoadXml(reader.ReadToEnd()); 
     } 
    } 
} 

Ecco un link al documento di Microsoft che descrive come farlo. http://support.microsoft.com/kb/319292

Problemi correlati