Arbeiten mit Webressourcen in ASP.NET 2.0

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 910442 - Produkte anzeigen, auf die sich dieser Artikel bezieht
ASP.NET Support Voice-Kolumne

Arbeiten mit Webressourcen in ASP.NET 2.0

Um diese Kolumne an Ihre Bedürfnisse anpassen, möchten wir möchten Sie einladen, reichen Sie Ihre Ideen zu Themen und Problemen, die Sie anzeigen möchten, in zukünftigen Knowledge Base-Artikeln und Support Voice-Kolumnen behandeln. Sie können Ihre Ideen und Feedback mit übermitteln die Danach Fragen Formular. Es gibt auch ein Link zu diesem Formular am Ende dieses Artikels.
Alles erweitern | Alles schließen

Auf dieser Seite

Einführung

Hallo! Mein Name ist Praveen Yerneni und ich bin ein technischer Leiter bei Microsoft mit der ASP.NET arbeiten. Im Artikel dieses Monats werde ich erläutern Sie Webressourcen und wie Sie sie in Ihre Anwendung implementieren.

Wenn Sie ein Entwickler, die ausgiebig mit COM-Steuerelementen arbeitet sind, möglicherweise sinnvoll in diesem Artikel in auf einige der wichtigsten Punkte, die Sie möglicherweise stoßen, wenn Sie Steuerelemente entwickeln. Zuvor, wenn Sie statische Dateien wie HTML-Dateien, CSS-Dateien, Bilddateien und Skriptdateien mithilfe eines COM-Steuerelements bereitstellen musste in Microsoft ASP.NET 1.1 ein Installationsprogramm erstellen und Verpacken Sie diese Dateien zusammen mit dem COM-Steuerelement. Jedoch gearbeitet, es viele Probleme beim Bereitstellen des Steuerelements angezeigt. Beispielsweise haben Sie möglicherweise Probleme mit Versionskonflikte, mit der sichergestellt wird, dass Dateien wie Bilder an demselben Speicherort bereitgestellt wurden oder mit statischen beschädigte oder gelöschte Dateien, die das Steuerelement zum Scheitern führen könnten.

Webressourcen in Microsoft ASP.NET 2.0 löst diese Probleme durch den Entwickler diese Ressourcen als Resources in die Assembly einbetten lassen. Um diese statischen Ressourcen zuzugreifen, können Sie nur eine Methode im Code des Steuerelements aufrufen.

Funktionsweise von Webressourcen

Webressourcen verlassen sich auf eine spezielle Handler mit dem Namen "WebResource.axd", zum Abrufen von Ressourcen in einer Assembly und diese an den Web-Browser bedienen, vorgesehen ist. Der Handlertyp für WebResource.axd ist AssemblyResourceLoader.

Wenn eine Anforderung vom Client für WebResource.axd eingeht, sucht der Handler der Webressource Bezeichner in der Abfragezeichenfolge -Methode des Anforderungsobjekts . Basierend auf dem Wert des Web Resource Identifier, versucht der Handler, die Assembly zu laden, die diese Ressource enthält. Wenn dieser Vorgang erfolgreich ist, wird dann der Handler das Assembly-Attribut suchen und den Ressourcenstream aus der Assembly laden. Der Handler wird schließlich greifen die Daten aus den Ressourcenstream und senden es an den Client zusammen mit den Inhaltstyp, den in das Assembly-Attribut angegeben.

Die URL für WebResource.axd sieht wie folgt aus:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
Das Format dieses URLs ist WebResource.axd?d=verschlüsselten Bezeichner& t =Zeitstempel mit dem Wert. Das "d" steht für die angeforderte Webressource. Das "t" ist der Zeitstempel für die angeforderte Assembly, dieser hilft herauszufinden, ob es Änderungen an der Ressource gab.

Eintauchen in den code

In meinem Beispiel habe ich ein COM-Steuerelement entwickelt, das von einer ASP.NET Web-Anwendung verwendet wird um dieses neue Feature zu veranschaulichen.

COM-Steuerelement für die Webressource

Zum Erstellen und Einbetten einer Webressource, habe ich ein COM-Steuerelement (SimpleControl) entwickelt. Es hat die folgenden eingebetteten Ressourcen:
  • Zwei Bilddateien mit den Namen smallFail.gif andsmallSuccess.gif. Diese Bilddateien werden für Rollover-Effekte in Control verwendet und dem Steuerelementcode verbraucht werden.
  • Eine HTML-Datei mit dem Namen Help.htm. Diese Datei enthält Notcontain viel Text und ist nur für die Demo.
  • Eine JavaScript-Datei mit dem Namen MyScript.js. Diese Filecontains JavaScript-Code die veranschaulicht außerdem die Featureto Ersetzung Abrufen eines Verweises auf eine andere eingebettete Ressource in der Sameassembly.
  • Eine CSS-Datei mit dem Namen MyStyleSheet.css. Dieses Stylesheet wird dann direkt aus der ASP.NET Web-Anwendung verbraucht.
In diesem Artikel werden die Teile erörtert, die für Web-Ressourcen erforderlich sind.
Einbetten von Web-Ressourcen
Zuerst müssen Sie sicherstellen, dass alle statischen Dateien, die das Web-Steuerelementbibliothek-Projekt in Microsoft Visual Studio 2005 hinzugefügt werden, eingebettete Ressourcen sind. Um diese Ressourcen einzubetten, Sie müssen, lediglich Visual Studio diese Dateien hinzu, und ändern Sie die Eigenschaften dieser Dateien, damit die Buildaktion auf Eingebettete Ressourcefestgelegt ist.

Nachdem Sie dies getan haben, müssen Sie sicherstellen, dass diese Ressourcen vom WebResource -Assembly in der Datei AssemblyInfo.cs wie unten gezeigt Attribut verwiesen wird.
[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)]

Das WebResource -Assemblyattribut verfügt über drei Parameter wie folgt:
  • Webressource: den Namen der Ressource, die in die Assembly eingebettet wird
  • ContentType: die MIME-Dateityp für die Ressource
  • PerformSubstitution: ein boolescher Wert, der bestimmt, ob auf die anderen Web Resource URLsthat in dieser Ressource werden analysiert und die Ressource durch den vollständigen sonnenbahn ersetzt
Abrufen von Web-Ressourcen
Zum Abrufen der Webressource, habe ich die GetWebResourceUrl -Methode verwendet, die eine Methode der ClientScriptManager -Klasse, die in der Regel für die Verwaltung von Client-Skripts verwendet wird. Diese Methode gibt einen URL-Verweis auf die serverseitige Ressource, die in einer Assembly eingebettet ist. Die GetWebResourceUrl -Methode akzeptiert die folgenden zwei Parameter:
  • Typ: der Typ der serverseitigen Ressource
  • Resource Name: der Name der serverseitigen Ressource
Um diese Methode zu verwenden, müssen Sie zuerst eine Instanz der ClientScriptManager -Klasse erstellen, und rufen den Typ der Klasse, wie unten dargestellt.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

Wenn Sie eine Instanz dieser Klasse haben, müssen Sie dann diese Methode aufrufen, und die entsprechenden Parameter übergeben, wie unten dargestellt, wo ich eine HyperLink -Schaltfläche erstelle, und in der NavigateURL -Methode auf eine eingebettete HTML-Ressource verweise.
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);

Auch den gleichen Code oben aufgelistet, erstellt eine Bildschaltfläche und Attributs ImageUrl erhält ihren Wert aus einer anderen eingebetteten GIF Image-Ressource.
Mithilfe des Substitution-Features
Ein weiteres nützliches Feature der Verwendung von Web-Ressourcen ist die PerformSubstitution -Eigenschaft des WebResource -Attributs, wie im Abschnitt "Web-Ressourcen einbetten" dargestellt. Dieses Feature können Sie die Gelegenheit, Web-Ressourcen in einer anderen eingebetteten Ressource. Wenn diese Eigenschaft aktiviert ist, wird der WebResource -Handler eingebettete Ressource analysieren und die Syntax für das Assemblyattribut WebResource durch aktuelle Ressourcen ersetzen Sie vor der Bereitstellung der Seite.

Im obigen Code sehen Sie, dass das HyperLink -Steuerelement verfügt über ein clientseitiges Ereignis mit dem Namen ChangeImage. Diese ChangeImage -Funktion befindet sich in einer Skriptdatei. Es folgt der Code für dieses Skript.
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;
}
Diese Skriptdatei mit dem Namen MyScript.js ist auch eine eingebettete Ressource in einem COM-Steuerelement. Und beachten Sie, dass ich die WebResource -Methode verwende, um auf eine andere eingebettete Ressource in der Skriptdatei verweisen.

Darüber hinaus verwenden um sicherzustellen, dass diese JavaScript-Datei auf der Seite registriert ist, ich die RegisterClientScriptInclude -Methode der ClientScriptManager -Klasse wie folgt.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

Verwenden des Steuerelements in ASP.NET

Nachdem Sie das COM-Steuerelement erfolgreich erstellt haben, müssen Sie dieses Steuerelement in einem Clientprojekt ASP.NET nutzen. Zu diesem Zweck müssen Sie nur das Steuerelement der Toolbox in ASP.NET hinzufügen. Anschließend können Sie alle Webformular im Designer des Steuerelements hinzufügen.

Wenn Sie das Steuerelement der Toolbox hinzufügen, das Steuerelement ist für Sie registriert und der folgende Code wird hinzugefügt, wenn Sie die HTML-Syntax anzeigen.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
In Mein COM-Steuerelement haben ich auch eine Stylesheetdatei eingebettet, die ich in meiner Anwendung ASP.NET verwenden möchten. Um dieses Stylesheet zuzugreifen, müssen Sie einen Link HtmlControl in der HTML-Seite hinzufügen und die Eigenschaft Runat auf Server festgelegt werden, wie unten dargestellt.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
Danach können Sie programmgesteuert das Href -Attribut des Steuerelements das WebResource -Assemblyattribut im Page_Load -Ereignis auf, wie unten dargestellt festlegen.
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);
     }

Wenn Sie den Code ausführen, sehen Sie ein Steuerelement, das wie folgt aussieht:
Bild minimierenBild vergrößern
 kleine Fehler
Und auf den Mauszeiger bewegen, wird das Steuerelement wie folgt aussehen:
Bild minimierenBild vergrößern
 kleine Erfolg
Wenn Sie auf diesen Link klicken, wird es auf der Hilfeseite haben die in der Datei des COM-Assembly eingebettet sind.

Abschluss

Web-Ressourcen ist eine nützliche neue Funktion in ASP.NET 2.0. Sie können dieses Feature zu Ihrem Vorteil verwenden, wenn Sie mit Bedacht verwenden. Verfahren zur Zwischenspeicherung von vielen wurden verwendet, um sicherzustellen, dass Web-Ressourcen nicht die Leistung der Anwendung auswirken.

In ASP.NET 2.0 wird WebResource.axd intern von der Microsoft.NET Framework verwendet, eingebettete Ressourcen abgerufen. Beispielsweise verwendet das.NET Framework WebResource.axd Skriptdatei WebUIValidation.js abzurufen, die für Validierungssteuerelemente verwendet wird und die Menu.js-Skriptdatei für Menü -Steuerelemente abrufen.

Informationsquellen

Weitere Informationen finden Sie auf den folgenden Microsoft-Websites:
ClientScriptManager.GetWebResourceUrl-Methode
http://msdn2.Microsoft.com/en-us/library (d=robot)/system.web.ui.clientscriptmanager.getwebresourceurl.aspx

WebResourceAttribute-Klasse
http://msdn2.Microsoft.com/en-us/library (d=robot)/system.web.ui.webresourceattribute.aspx

Verknüpfte oder eingebettete Ressourcen
http://msdn2.Microsoft.com/en-us/library/ht9h2dk8.aspx
Da immer gerne und Wünsche zu Themen soll in Zukunft Spalten behandelt oder in der Knowledge Base mit der Danach Fragen Formular.

Eigenschaften

Artikel-ID: 910442 - Geändert am: Dienstag, 3. September 2013 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 2.0
Keywords: 
kbhowto kbasp kbmt KB910442 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 910442
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com