Defines the metadata attribute that enables an embedded resource in an assembly. This class cannot be inherited.
<AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple := True)> _ Public NotInheritable Class WebResourceAttribute _ Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = true)] public sealed class WebResourceAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly, AllowMultiple = true)] public ref class WebResourceAttribute sealed : public Attribute
[<Sealed>] [<AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = true)>] type WebResourceAttribute = class inherit Attribute end
The WebResourceAttribute type exposes the following members.
The WebResourceAttribute class is valid only when used on assembly declarations. It is used to enable a specified embedded resource in an assembly for use as a Web resource.
For more information on resources, see ASP.NET Web Page Resources Overview.
This section contains two code examples. The first code example demonstrates how to apply the WebResourceAttribute attribute to a namespace that defines a custom control, MyCustomControl. The second code example demonstrates how to use the MyCustomControl class in a Web page.
The following code example demonstrates how to apply the WebResourceAttribute attribute on a custom assembly to define an image Web resource and an HTML Web resource. The MyCustomControl class defines a composite control that uses the resources to set the value of the ImageUrl property of an Image control that is contained within the composite control and to set the HRef property of an HtmlAnchor control linking to the HTML resource.
Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Web.Security Imports System.Web.UI Imports System.Web.UI.HtmlControls Imports System.Web.UI.WebControls <Assembly: WebResource("image1.gif", "image/jpeg")> <Assembly: WebResource("help.htm", "text/html", PerformSubstitution:=True)> Namespace Samples.AspNet.VB.Controls Public Class MyCustomControl Inherits Control <System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ Protected Overrides Sub CreateChildControls() ' Create a new Image control. Dim _img As New Image() _img.ImageUrl = Me.Page.ClientScript.GetWebResourceUrl(GetType(MyCustomControl), "image1.jpg") Me.Controls.Add(_img) ' Create a new Label control. Dim _lab As New Label() _lab.Text = "A composite control using the WebResourceAttribute class." Me.Controls.Add(_lab) ' Create a new HtmlAnchor control linking to help.htm. Dim a As HtmlAnchor = New HtmlAnchor() a.HRef = Me.Page.ClientScript.GetWebResourceUrl(GetType(MyCustomControl), "help.htm") a.InnerText = "help link" Me.Controls.Add(New LiteralControl("<br />")) Me.Controls.Add(a) End Sub End Class End Namespace
using System; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; [assembly: WebResource("image1.jpg", "image/jpeg")] [assembly: WebResource("help.htm", "text/html", PerformSubstitution=true)] namespace Samples.AspNet.CS.Controls { public class MyCustomControl : Control { [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] protected override void CreateChildControls() { // Create a new Image control. Image _img = new Image(); _img.ImageUrl = this.Page.ClientScript.GetWebResourceUrl(typeof(MyCustomControl), "image1.jpg"); this.Controls.Add(_img); // Create a new Label control. Label _lab = new Label(); _lab.Text = "A composite control using the WebResourceAttribute class."; this.Controls.Add(_lab); // Create a new HtmlAnchor control linking to help.htm. HtmlAnchor a = new HtmlAnchor(); a.HRef = this.Page.ClientScript.GetWebResourceUrl(typeof(MyCustomControl), "help.htm"); a.InnerText = "help link"; this.Controls.Add(new LiteralControl("<br />")); this.Controls.Add(a); } } }
The following code example demonstrates how to use the MyCustomControl class in a Web page.
<%@ Page Language="VB" %> <%@ Register TagPrefix="AspNetSamples" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB.Controls" %> <%@ Import Namespace="System.Reflection" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) ' Get the assembly metatdata. Dim clsType As Type = GetType(MyCustomControl) Dim a As Assembly = clsType.Assembly For Each attr As Attribute In Attribute.GetCustomAttributes(a) 'Check for WebResource attributes. If attr.GetType() Is GetType(WebResourceAttribute) Then Dim wra As WebResourceAttribute = CType(attr, WebResourceAttribute) Response.Write("Resource in the assembly: " & wra.WebResource.ToString() & _ " with ContentType = " & wra.ContentType.ToString() & _ " and PerformsSubstitution = " & wra.PerformSubstitution.ToString() & "</br>") End If Next attr End Sub </script> <html > <head runat="server"> <title>WebResourceAttribute Example</title> </head> <body> <form id="form1" runat="server"> <div> <AspNetSamples:MyCustomControl id="MyCustomControl1" runat="server"> </AspNetSamples:MyCustomControl> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Register TagPrefix="AspNetSamples" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS.Controls" %> <%@ Import Namespace="System.Reflection" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { // Get the assembly metatdata. Type clsType = typeof(MyCustomControl); Assembly a = clsType.Assembly; // Iterate through the attributes for the assembly. foreach (Attribute attr in Attribute.GetCustomAttributes(a)) { //Check for WebResource attributes. if (attr.GetType() == typeof(WebResourceAttribute)) { WebResourceAttribute wra = (WebResourceAttribute)attr; Response.Write("Resource in the assembly: " + wra.WebResource.ToString() + " with ContentType = " + wra.ContentType.ToString() + " and PerformsSubstitution = " + wra.PerformSubstitution.ToString() + "</br>"); } } } </script> <html > <head runat="server"> <title>WebResourceAttribute Example</title> </head> <body> <form id="form1" runat="server"> <div> <AspNetSamples:MyCustomControl id="MyCustomControl1" runat="server"> </AspNetSamples:MyCustomControl> </div> </form> </body> </html>
This example requires that you compile the Image1.jpg and Help.htm resources with the assembly that contains MyCustomControl. For more information, see, /resource (C# Compiler Options) or /resource (Visual Basic).
An example of an HTML Web resource that could be used in this example is shown next. Note the use of the WebResource syntax, which is used when you set the PerformSubstitution property to true for a Web resource.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html >
<head>
<title>Included Help Page</title>
</head>
<body>
<div>
<img alt="help image" src=<% = WebResource("image1.jpg") %> />
Included help file.
</div>
</body>
</html>
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2