WebResource.axd を利用したい

GDNJ の (ASP.NET)WebResource.axdについて の補足というか続き。
WebResource.axd に関してはアセンブリの埋め込みリソースを WebRequest として直接取り出す機能で、GDNJ にも書いたように、アセンブリとリソースネームスペースを示す型とリソース名を指定して、RegisterClientScriptResource を呼び出すか WebResourceAttribute で指定しておけば WebResource.axd からのアクセスが有効になり、*1その URL は GetWebResourceUrl で得ることができる。
WebControl の場合は、WebResourceAttribute で十分なのだが、aspx ページで手軽に使えると、元投稿のような状況で便利に使うことができる。そこで、id:ladybug:20051207#p3 にあるように ASP.NET Expressions を利用して URL を埋め込めるようにしてみよう。

上記の記述は、内容が大間違いのため、id:ladybug:20060316 にて修正しています。

期待した結果は、.aspx にて

  <IMG SRC="<%$ ResourcesUrl: Images, Logo %>">

などと記述すると、

  <IMG SRC="WebResource.axd?...">

と展開すること。(引数は Resources と同じとする)

*1:当然だが、WebResource.axd にどのようなパラメータを与えても使用して許可していないリソースを取り出すことはできない

続きを読む