Nesse caso ele diz que não, por padrão, nenhum recurso. Clique sobre o link para adicionarmos um. Agora, vá em Add Resource, New Image e escolha um dos tipos de imagem suportado ou escolha Add Existing File... para selecionar uma imagem existente no disco.
Logo após incorporá-la nos recursos, verá, através do Solution Explorer, que foi criada uma pasta chamada Resources contendo a imagem desejada. Agora iremos permitir também que a imagem seja "chamada" ou, melhor dizendo, seja embedded. Para isso, clique com o direito sobre a imagem e entre em Properties. No Build Action, escolha a propriedade Embedded Resource.
Agora, vá na pasta Properties da solução e abra o arquivo AssemblyInfo.cs. Adicione o namespace:
using System.Web.UI;
E adicione a seguinte linha no final (pode ser depois de todas que tiverem):
[assembly: WebResource("Framework.Resources.Calendario.png", "image/png")]
Sendo que é constituído por:
- Framework: é o namespace que compõe sua solução, no meu caso estava utilizando o namespace Framework;
- Resources: indica o nome da pasta onde está o recurso;
- Imagem
Assim a imagem já está incorporada à DLL e prontra para uso. Para invocarmos, conforme descrito anteriormente, pode ser de duas formas: de dentro da DLL e fora dela.
Por dentro, podemos gerar um objeto Image e adicionar seu atributo ImageUrl diretamente:
Image imagem = new Image();
imagem.ImageUrl = ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Resources.Calendario.png");
Pode-se utilizar a mesma forma de invocação quando for chamar de fora da DLL pelo CodeBehind. Se for chamar direto na página ASPX basta utilizar as tags <%= %>colocando dentro o método de invocação do recurso.
Você pode utilizar essa forma de acoplamento de recursos para alguns outros tipos de objetos como JavaScript, por exemplo. Lembrando que não é bom ter uma DLL muito grande com diversos objetos. Caso for de extrema importância mantê-lo na DLL, fragmente-os em diversas outras DLLs.
0 comentários:
Postar um comentário