Molto spesso abbiamo bisogno di inserire oggetti (immagini, file di testo, filmati Flash, ecc …) e di richiamarli in fase di esecuzione. Il problema può essere risolto in due modi:
1 – Portandoci dietro il file originale;
2 – Includendo il file nel nostro progetto e compilarlo con esso.
La prima soluzione non staremo qui a spiegarla e presteremo molta attenzione alla seconda soluzione.
Il framework .NET (già dalla versione 1.1) ci permette di memorizzare, all'interno di un progetto, qualsiasi tipo di file.
Per fare ciò è necessario:
1) importare il file all'interno del progetto utilizzando il menù Project\Add Existing Items;
2) selezionare il file all'interno del Solution Explorer e impostare tra le proprietà la Build Action come Embedded Resource;
In questo modo il nostro file EXE verra compilato direttamente don il progetto.
A questo punto non ci rimane altro che richiamare il file in fase di esecuzione. Per fare questo possiamo utili il codice seguente:
Private bmStop As Bitmap
Dim a As Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
bmStop = New Bitmap(a.GetManifestResourceStream( "NamSpaceRadice.NomeFile.Est"))
NameSpaceRadice è il nome del namespace root dell'assembly mentre NomeFile.Est è il nome del file inserito nel progetto.
N.B.
Il metodo GetManifestResourceStream genera un'eccezione se il file e di dimensioni superiori ai 2GB
Ciao
Ivan
?>