Embedded Resources in ASP.Net Web Application

In .Net, when you don’t want to relay a file to a physical location, it is an excellent option to take advantage of Embedded resources. Using embedded resources, you can add any file type in the assembly/DLL/EXE when they get compiled. And whenever you want to use it, load it from the assembly; the files get stored in the metadata of Assembly. Here is an example of how to use Embedded Resources.

  • Open Microsoft Visual Studio and create a new C# Windows Application; here, I have created Windows Application named “EmbeddedTest”, even you can use “Class Library.”
  • To add a file in the project Right-click on the project name in Solution Explorer, select “Add” >> “Existing Item….”
  • Now we have added a file to the project, so it doesn’t mean that it will automatically be embedded in the Assembly; for that, we need to change the files “Build Action” property to “Embedded Resource” compiler will include this file in metadata. Here I have added an Image file(blue.jpg); you can add one or more any kind of files.
  • Now use the following code in the Form1_Load method to list all the Embedded Resources available in the Assembly.
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string[] resources = ImageLibrary.Images.GetNames();

        foreach (string resourceName in resources)
        {
            ListBox1.Items.Add(resourceName);
        }
    }
}
  • The following code is used to get the resource from the Manifest of the Assembly when the user clicks on the listBox1
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (ListBox1.SelectedIndex == -1)
         return;

     string selectedResourceName = ListBox1.SelectedItem.ToString();

    System.Drawing.Image  img = ImageLibrary.Images.GetImageByResourceName(selectedResourceName);
     if (img != null)
     {
         System.Drawing.Bitmap obj = new System.Drawing.Bitmap(img);
         Response.ContentType = "image/gif";


         obj.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
    
     }
     else
     {
    
    
     }
 

 }

complete code

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Reflection;

using System.IO;

namespace ImageLibrary
{
  public class Images
  {
      public static string[] GetNames()
      {
          Assembly a = Assembly.GetExecutingAssembly();

          return a.GetManifestResourceNames();
      }

      public static Image GetImageByResourceName(string resourceName)
      {
          Assembly a = Assembly.GetExecutingAssembly();

          try
          {
              Stream stream = a.GetManifestResourceStream(resourceName);

              return Bitmap.FromStream(stream) as Bitmap;
          }
          catch (Exception ex)
          {
              return null;
          }
      }
  }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EmbeedTest.aspx.cs" Inherits="EmbeedTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>Untitled Page</title>
</head>
<body>
  <form id="form1" runat="server">
      <div>
          <table style="width: 100%">
              <tr>
                  <td style="width: 100px">
                      <asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ListBox1_SelectedIndexChanged">
                      </asp:ListBox></td>
                  <td style="width: 100px">
                  </td>
              </tr>
          </table>
      </div>
  </form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class EmbeedTest : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
      if (!IsPostBack)
      {
          string[] resources = ImageLibrary.Images.GetNames();

          foreach (string resourceName in resources)
          {
              ListBox1.Items.Add(resourceName);
          }
      }
  }
  protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
  {
      if (ListBox1.SelectedIndex == -1)
          return;

      string selectedResourceName = ListBox1.SelectedItem.ToString();

     System.Drawing.Image  img = ImageLibrary.Images.GetImageByResourceName(selectedResourceName);
      if (img != null)
      {
          System.Drawing.Bitmap obj = new System.Drawing.Bitmap(img);
          Response.ContentType = "image/gif";


          obj.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
      
      }
      else
      {
      
      
      }
   

  }
}

1 تعليقات

Please do not post any spam link in the comment box😊

إرسال تعليق
أحدث أقدم