Una feature che stò
iniziando ad usare parecchio sono le risorce embedded, cioè la capacita di
inserire file all'interno dei nostri assembly e di poterli tranquillamente
leggere.
Per inserire un file e renderlo
disponibile come risorsa embedded non dobbiamo far altro che dal Solution
Explorer di Visual Studio, aggiungere il file interessato e nelle proprietà
dello stesso, alla voce Build Action, selezionare "Embedded Resource" ed il
gioco è fatto.
Per leggere il file in questione, ecco una
funzione, che grazie al namespace del file ci ritorna uno stringa con il
contenuto del file.
///
/// Funzione di letttura delle risorse embedded
///
/// Nome della risorsa completo di tutto il NameSpace
/// Testo contenuto nella risorsa
private string GetFromResources(string resourceName)
{
Assembly assem = this.GetType().Assembly;
using (Stream stream = assem.GetManifestResourceStream(resourceName))
{
try
{
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
catch (Exception e)
{
throw new Exception("Error retrieving from Resources. Tried '"
+ resourceName + "'\r\n" + e.ToString());
}
}
}
Per leggere la nostra risorsa, esempio "Script.js" contenuta nel progetto "AndreaDottor.UI" nella cartella "Resources" ora non dobbiamo far altro che
scrivere
string scriptResource = GetFromResources("AndreaDottor.UI.Resources.Script.js")
Un
vantaggio di tutto questo, è anche la possibilità di accedervi
facilmente tramite il namespace, quindi senza doversi più preoccupare di dove si
sarebbero trovati determinati file (esempio Stylesheet, file di Javascript o
quantaltro).
Fonte: http://www.codeproject.com/csharp/embeddedresourcestrings.asp
Print | posted on giovedì 29 giugno 2006 20:03