Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to define a global variable in ASP.net web app

Tags:

c#

asp.net

I have face a requirement,

I want client access a data center but without use database , so I want my web app can retain a global or Application session variable, that contains the data, every client can access the same data... I am try to declare in golabl, but seem it only can store String but others ...

how to solve this problem ?

thanks.

like image 380
iXcoder Avatar asked Nov 13 '10 05:11

iXcoder


People also ask

How can use global variable in ASP NET?

However, you can make a global variable by creating a static class in a separate class file in your application. First, create a class called global in your application with the code given below. The class also has a static variable. Now, you can access it from anywhere in your forms after assigning a value to it.

How do you declare a global variable?

The global Keyword Normally, when you create a variable inside a function, that variable is local, and can only be used inside that function. To create a global variable inside a function, you can use the global keyword.

How do you call a global variable in C#?

In C# you cannot define true global variables (in the sense that they don't belong to any class). You can then retrieve the defined values anywhere in your code (provided it's part of the same namespace ): String code = Globals. CODE_PREFIX + value.

Can we declare var as global variable in C#?

Is possible to declare global VAR in c# .


2 Answers

Another option of defining a global variable is by creating a static class with a static property:

public static class GlobalVariables
{
    public static string MyGlobalVariable { get; set; }
}

You can make this more complex if you are going to use this as a data store, but the same idea goes. Say, you have a dictionary to store your global data, you could do something like this:

public static class GlobalData
{
    private static readonly object _syncRoot = new object();
    private static Dictionary<string, int> _data;

    public static int GetItemsByTag(string tag)
    {
        lock (_syncRoot)
        {
            if (_data == null)
                _data = LoadItemsByTag();

            return _data[tag];
        }
    }

    private static Dictionary<string, int> LoadItemsByTag()
    {
        var result = new Dictionary<string, int>();

        // Load the data from e.g. an XML file into the result object.

        return result;
    }
}
like image 63
Pieter van Ginkel Avatar answered Sep 26 '22 20:09

Pieter van Ginkel


To Share the data with all application users, you can use ASP.NET Application object. Given is the sample code to access Application object in ASP.NET:

Hashtable htblGlobalValues = null;

if (Application["GlobalValueKey"] != null)
{
    htblGlobalValues = Application["GlobalValueKey"] as Hashtable;
}
else
{
    htblGlobalValues = new Hashtable();
}

htblGlobalValues.Add("Key1", "Value1");
htblGlobalValues.Add("Key2", "Value2");

this.Application["GlobalValueKey"] = htblGlobalValues;

Application["GlobalValueKey"] can be used anywhere in the whole application by any user. It will be common to all application users.

like image 26
Sankalp Avatar answered Sep 26 '22 20:09

Sankalp