Static application variables : Global.asax « ASP.Net Instroduction « ASP.NET Tutorial






File: Global.asax

<%@ Application Language="C#" ClassName="Global" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Collections.Generic" %>
<script runat="server">

    private static string[] fileList;
    public static string[] FileList
    {
        get
        {
            if (fileList == null)
            {
                fileList = Directory.GetFiles(HttpContext.Current.Request.PhysicalApplicationPath);
            }
            return fileList;
        }
    }

    private static Dictionary<string, string> metadata = new Dictionary<string, string>();
    public void AddMetadata(string key, string value)
    {
        lock (metadata)
        {
            metadata[key] = value;
        }
    }
    public string GetMetadata(string key)
    {
        lock (metadata)
        {
            return metadata[key];
        }
    }
</script>


File: Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="StaticApplicationVariables" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblInfo" runat="server"></asp:Label>
    
    </div>
    </form>
</body>
</html>

File: Default.aspx.cs

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;
using System.Text;
using ASP;

public partial class StaticApplicationVariables : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    StringBuilder builder = new StringBuilder();
    foreach (string file in Global.FileList)
    {
      builder.Append(file + "<br />");
    }
    lblInfo.Text = builder.ToString();
    }
}








1.6.Global.asax
1.6.1.The global.asax Application File
1.6.2.Some events don't fire with every request:
1.6.3.Global application file. (C#)
1.6.4.Appication level event handlers in global.asax
1.6.5.Global.asax file can be used to track the number of page requests made for any page.
1.6.6.Application level action sequence
1.6.7.Static application variables
1.6.8.Override string GetVaryByCustomString in Global.asax (C#)
1.6.9.Override string GetVaryByCustomString in Global.asax (VB)
1.6.10.Log exception in Global.asax (C#)
1.6.11.Log exception in Global.asax (VB)