Quem sou eu

Minha foto
Programador por profissão, formação e opção! Interessado em tudo relacionado a computadores, menos manutenção de hardware! Linguagens (interesse e trabalho): Java, C#, C/C++, Python, Ruby, Haskell. Atualmente trabalhando como Desenvolvedor (maior parte do tempo em soluções ASP.NET)

terça-feira, 4 de agosto de 2009

Carregando arquivos embarcados - .Net

Muitas vezes precisamos carregar arquivos que são embarcados em nossas dlls ou executáveis.

Isso é muito comum com imagens de botões. Pois quando o seu executável é publicado, você não libera uma pasta cheia de imagens para seus usuários.

O trecho abaixo, mostra como carregar um arquivo embarcado em um assembly. É bem simples:


public class ResourceReader
{
public static System.IO.Stream OpenResource(string fullName)
{
/* Full name é o nome completo do recurso, ou seja
* o caminho onde você colocou o recurso na sua solução.
* Apenas substituindo o "/" por "."
* Supondo que eu tenha um xml colocado na pasta
* <raiz da solução>\Andre\Configuration\Network\config.xml
* eu acessaria o recuros com o seguinte endereço:
* Andre.Configuration.Network.config.xml
* */
/* Recuperei o objeto que representa a dll ou exe que contém
* o código corrente */
System.Reflection.Assembly meuAssembly = System.Reflection.Assembly.GetExecutingAssembly();
/* Retorna um stream para ler o conteudo que está embarcado em minha dll */
return meuAssembly.GetManifestResourceStream(fullName);
}
}
O código acima é bem simples e auto-explicativo. Com este recurso você pode ler qualquer coisa que possa ser manipulada através de Streams (imagens, vídeos, textos, xml, xsd, etc).

Nenhum comentário:

Postar um comentário