現在オフラインです。再接続するためにインターネットの接続を待っています

ASP.NET 2.0 の Web リソースを使用

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

910442
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。
ASP.NET サポート音声列

ASP.NET 2.0 の Web リソースを使用

この列には、お客様のニーズをカスタマイズするのとを参照してください興味のあるトピックに関するアイデアを今後のサポート技術情報の記事やサポート音声列に招待します。アイデアおよびフィードバックを使用して送信することができます、 要求します。 フォームです。また、この列の下部にあるフォームへのリンクです。

はじめに

こんにちは !Praveen Yerneni と申し、私は技術をリードしてmicrosoft ASP.NET のサポート グループに。今月のコラムでは、ここWeb リソースは、それらを実装する方法について説明します、アプリケーションです。

広範囲にわたって COM で作業する開発者の場合コントロールは、この資料のキーへの対処に便利コントロールを開発する際に起こる可能性のある問題です。Microsoft ではこれまで、ASP.NET 1.1 は、.html ファイルなどの静的ファイルを展開する場合は、.cssファイル、イメージ ファイル、および、COM コントロールを使用してスクリプト ファイルを作成する必要があります。インストーラーは、バンドル、COM と共にこれらのファイルを制御します。がこの動作は、コントロールを展開するときに、多くの問題を提示します。を例は、問題を確認する、バージョンの競合がいなかった可能性があります。イメージなどのファイルが同じ場所に配置またはが破損されたことまたは、コントロールが失敗する可能性があります削除済みの静的なファイルします。

WebMicrosoft ASP.NET 2.0 リソースをこのような問題に対処します。開発者アセンブリに .resources は、これらのリソースを埋め込みます。これらにアクセスするのには静的リソースをだけメソッドをコントロールの呼び出すことができます。コードです。

Web リソースが機能するしくみ

Web リソースという名前は、特殊なハンドラーには依存します。WebResource.axd は、アセンブリのリソースを取得し、サービスを提供するように設計されています。Web ブラウザーにします。ハンドラーの型は、WebResource.axd AssemblyResourceLoaderです。

ときは、要求をクライアントからの受信WebResource.axd、ハンドラーは Web のリソース識別子にRequestオブジェクトのQueryStringメソッドを検索します。Web リソース識別子の値に基づいて、ハンドラーは、[このリソースを含むアセンブリを読み込むしようとします。この場合は操作が成功した、このハンドラーが、アセンブリ属性を検索しますリソース ストリームからのアセンブリをロードします。最後に、ハンドラーを取得しますリソースからデータ ストリームし、と共にクライアントに送信します。アセンブリの属性で指定するコンテンツ タイプ。

URLWebResource.axd は次のようになります。
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
この URL の形式は WebResource.axd?d= です。暗号化識別子& t =タイムスタンプ値.を要求された Web リソースは"d"を意味します。"T"のタイムスタンプが、要求されたアセンブリがあった場合は、決定をすることができます。リソースに変更します。

コードを調べる

ここでは、私によって消費される、COM コントロールを開発しました。この新機能を説明するためには、ASP.NET Web アプリケーションです。

COM コントロールの Web リソース

作成し、Web リソースを埋め込むことで、COM を開発しましたコントロール (SimpleControl)。これは次の埋め込みリソースがあります。
  • 2 つの画像の smallFail.gif という名前のファイルとsmallSuccess.gif これらのイメージ ファイルのロール オーバー効果を使用する。コントロールは、コントロール コード内で消費。
  • HTML ファイル Help.htm という名前です。このファイルではありません。多くの文字列が含まれているし、は、デモのためだけにです。
  • MyScript.js という 1 つの JavaScript ファイルです。このファイルまた、置換機能を次に示しますいくつかの JavaScript コードが含まれています。同じの別の埋め込みリソースへの参照を取得するのにはアセンブリ。
  • MyStyleSheet.css という名前で 1 つの .css ファイルこのスタイルシートには、ASP.NET Web アプリケーションから直接、消費されます。
この記事では、私に必要な部品について説明しますWeb リソースです。
Web リソースを埋め込む
最初に、すべての静的ファイルがあるかどうかを確認する必要があります。Web コントロール ライブラリを Microsoft Visual Studio 2005 プロジェクトに追加埋め込まれたリソースです。これらのリソースを埋め込むには、すべてを行う必要があります追加です。これらのファイル Visual Studio をし、ためこれらのファイルのプロパティを変更ビルド操作の設定を 埋め込みリソース.

この操作を実行した後、また取ること確認してこれらのリソース、AssemblyInfo.cs ファイルのweb リソースのアセンブリ属性を以下に示すように、参照されていること。
[assembly: WebResource("SimpleControl.Help.htm", "text/html")][assembly: WebResource("SimpleControl.MyStyleSheet.css", "text/css")][assembly: WebResource("SimpleControl.smallFail.gif", "image/gif")][assembly: WebResource("SimpleControl.smallSuccess.gif", "image/gif")][assembly: WebResource("SimpleControl.MyScript.js", "text/javascript", PerformSubstitution = true)]
Web リソースのアセンブリ属性では、3 つのパラメーターは次のとおりです。
  • Web リソース: アセンブリに埋め込まれているリソースの名前
  • コンテンツ タイプ: [MIME ファイルの種類のリソース
  • PerformSubstitution: を決定するブール型の値かどうか他の Web リソースの Urlこのリソースの参照に解析され、完全なパスを交換してください。リソース
Web リソースの取得
Web リソースを取得するために、私は用のクライアント側スクリプトを管理するために使用は、通常、 ClientScriptManagerクラスのメソッド、 GetWebResourceUrlメソッドを使用しています。このメソッドは、サーバー側リソースへの URL 参照を返しますアセンブリに埋め込まれています。GetWebResourceUrlメソッドは、次の 2 つのパラメーターを受け取ります。
  • 種類: サーバー側リソースの型
  • リソース名: サーバー側リソースの名前
このメソッドを使用するのには、まず、 ClientScriptManagerクラスのインスタンスを作成し、次に示すように、クラスの型を取得する必要があります。
ClientScriptManager cs = Page.ClientScript;            Type rsType = this.GetType();
このクラスのインスタンスがある場合は、この呼び出す必要メソッドは、ハイパーリンクのボタンを作成する、下に示すように適切なパラメーターを渡すし、埋め込みの HTML リソースを指すように、 NavigateURLメソッドを設定します。
HyperLink hlHelpFile = new HyperLink();            hlHelpFile.NavigateUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.Help.htm");            hlHelpFile.Attributes.Add("onmouseover", "ChangeImage('image1','Red')");            hlHelpFile.Attributes.Add("onmouseout", "RollbackImage('image1','Green')");                        this.Controls.Add(hlHelpFile);            Image imgTest = new Image();            imgTest.ImageUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.smallFail.gif");            imgTest.ID = "image1";            hlHelpFile.Controls.Add(imgTest);
同一のコードでは、上記のリストは、画像ボタンを作成したし、 ImageUrl属性の値が別の埋め込みの .gif 画像を入るリソースです。
置換機能を使用します。
「Web リソースの埋め込み」セクションで示すように Web リソースを使用するもう 1 つの便利な機能をweb リソース属性のPerformSubstitutionプロパティです上。この機能は実際に他の中に埋め込まれて Web リソースを取得することができます。リソースです。このプロパティが有効になっている場合は、 web リソースハンドラー [埋め込まれたリソースを解析して構文を置き換えるweb リソースのアセンブリ属性を実際のリソースを提供する前に、ページです。

上記のコードでは、ハイパーリンクコントロールは、 ChangeImageというクライアント側のイベントがあることがわかります。このChangeImage関数は、スクリプト ファイルにあります。次のコードです。このスクリプトでは。
function ChangeImage(imgControl,varcolor){   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallSuccess.gif")%>';    document.getElementById('Label1').style.color = varcolor;}function RollbackImage(imgControl, varcolor){   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallFail.gif")%>';   document.getElementById('Label1').style.color = varcolor;}
MyScript.js という名前のスクリプト ファイルを埋め込みリソースの場合は同じ COM コントロールをします。私は、 web リソースのメソッド スクリプト内の別の埋め込みリソースを参照してくださいして ことに注意してください。ファイルです。

また、この JavaScript ファイルで登録されているかどうかを確認するのにはページ、次のよう、 ClientScriptManagerクラスのRegisterClientScriptIncludeメソッドを使用します。
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

ASP.NET 内のコントロールの使用

COM コントロールを正常にビルドした後で、する必要があります。このコントロールは、クライアント ASP.NET プロジェクトで消費されます。これを行うには、単があります。コントロールは、ASP.NET ツールボックスに追加します。コントロールに追加することができますし、Web フォーム デザイナーで。

ツールボックスにコントロールを追加する場合は、コントロールを登録して参照すると、次のコードが追加されます。HTML の構文です。
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
マイ COM コントロールでは、私もここでは、スタイル シート ファイルを埋め込んだASP.NET アプリケーションでを使用します。このスタイル シートにアクセスするのには、追加する必要があります。HtmlControlrunatプロパティをサーバーに示すように、HTML ページの下のリンクです。
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
その後、プログラムがweb リソースのアセンブリ属性をPage_Loadイベントに次のように、このコントロールのHref属性を設定できます。
protected void Page_Load(object sender, EventArgs e)    {        //Get the name of the Web Resource.        String rsname = "SimpleControl.MyStyleSheet.css";                //Get the type of the class.        Type rstype = typeof(SimpleControl.MSButton);        // Get a ClientScriptManager reference from the Page class.        ClientScriptManager cs = Page.ClientScript;        lnkStyle.Href = cs.GetWebResourceUrl(rstype, rsname);     }
このコードを実行するのように、コントロールが表示されます、次の。
 小さな失敗
マウス オーバーでは、コントロールは次のように見えます。
 小さな成功
このリンクをクリックすると、ヘルプ ページになりますがCOM コントロールのアセンブリ ファイルに埋め込まれています。

まとめ

Web リソースは、ASP.NET 2.0 の便利な新機能をしています。使用することができます。この機能を適切に使用する場合は、することです。多くのキャッシュ技法Web リソースのパフォーマンスの影響を確認するために使用されてアプリケーションです。

ASP.NET 2.0 では、WebResource.axd 内部で使用されます。[Microsoft.NET Framework 埋め込みリソースを取得します。たとえば、.NET Framework WebResource.axd を使用して、WebUIValidation.js スクリプトを取得します。検証コントロールは、メニューコントロールの Menu.js スクリプト ファイルを取得するために使用されるファイルです。

参照

詳細については、次のマイクロソフト Web サイトを参照してください。
常にアイデアを送信する自由します。今後のコラムでまたはを使用して、サポート技術情報に対応します。 要求します。 フォームです。

警告: この資料は、自動翻訳されています

プロパティ

文書番号:910442 - 最終更新日: 04/30/2013 05:49:00 - リビジョン: 5.0

  • Microsoft ASP.NET 2.0
  • kbhowto kbasp kbmt KB910442 KbMtja
フィードバック