Como tinha referido nos meus posts anteriores, resolvi preparar o meu controlo para ser apresentado num artigo que irei publicar no site. Hoje resolvi embeber o ficheiro de script cliente que o meu controlo necessita para funcionar na dll que contém o controlo. Esta decisão prendeu-se com o facto de a nova versão possuir um Handler que consegue obter recursos embebidos nas dlls. Do ponto de vista da utilização, pensava que o queria fazer era algo de muito simples: bastava embeber o ficheiro de script na dll (maneira mais fácil consiste em aceder às propriedades do ficheiro e modificar a acção de buid para Embedded Resource) e indicar ao asp.net que queríamos utilizar este ficheiro.
Esta última acção (que, à primeira vista, poderia parecer complicada) é muito simples: basta utilizarmos o método RegisterClientScriptResource existente na classe ClientScriptManager. Qual não foi a minha surpresa ao testar a página e reparar que o código relativo ao ficheiro de script não era carregado? Após algum tempo à procura de informação, resolvi expor o problema ao nosso amigo João Paulo Carreiro. Como sempre, ele detectou a origem do problema.
Afinal, para além dos passos indicados anteriormente, temos também de indicar explicitamente que pretendemos fornecer acesso ao recurso em questão. Para tal, devemos anotar o nosso assembly com o atributo WebResourceAttribute indicando o recurso e o respectivo tipo (MIME). Já agora, fica aqui um link para um artigo que aborda esta questão.
posted on Friday, December 31, 2004 4:54 PM