有关 ASP.NET 的 Application 的用法,与 Session 特别例外。关于
Session,请参见:ASP.NET C# Session
笔记几则,上边介绍
Application 的用法。

那篇文章首要给大家介绍了关于ASP.NET
C#中Application的用法,在介绍Application的用法在此以前,先给大家介绍了Session的用法供大家参谋学习,文中介绍的不得了详尽,需求的情大家上边跟着小编一齐来上学学习啊。

名称再度难点

Application对象

HttpContext.Current.Application.Add(“key1”, “value1″卡塔尔国;
HttpContext.Current.Application.Add(“key2”, “value2″卡塔尔国;
HttpContext.Current.Application.Add(“KEY2”, “value3″卡塔尔国; // name
忽视大小写 int count = HttpContext.Current.Application.Count; // 3 个
string[] keys = return HttpContext.Current.Application.AllKeys; //
key1、key2、key2 string s =
(string)HttpContext.Current.Application.Get(“key2”); // value2 string s2
= (string)HttpContext.Current.Application.Get(2); // value3

Application对象生存期和Web应用程序生存期相近长,生存期从Web应用程序网页被访谈开端,HttpApplication类对象Application被自动创建,直到未有叁个网页被访谈时截至,Application对象被机关打消。由此Application对象中的变量也可能有同毕生存期,并且变量可以被Web应用程序中的全数网页访问。因而,能够在Application对象中创设部分大局的公用变量,由于存款和储蓄在Application对象中的数值能够被应用程序的持有网页读取,所以Application对象的习性也适合在应用程序的网页之间传递音讯。

如上代码,结果大家在备考中列出了。能够看看
Application 遭遇键值形似,它既不报错,也不隐蔽以前的,而是相同的时间存在。用键值名称去取值时,取到的是同名中首先个照顾的值。就算非要取前边的,就用
index。

Application对象重要有以下用场:

设若大家要遇相符 name,就覆盖,可用上面包车型客车代码

l 存款和储蓄记录在眼线数或访谈网址总人数的变量。

HttpContext.Current.Application.Add(“key1”, “value1″卡塔尔国; //
HttpContext.Current.Application.Add(“key2”, “value2″卡塔尔国; string name =
“key2”; object obj = HttpContext.Current.Application.Get(name卡塔尔; if (obj
== null卡塔尔国 { // 不设有,直接增多 HttpContext.Current.Application.Add(name,
“value2″卡塔尔; } else { // 存在,不能够一贯调用 Add 方法,那样会以致多少个相仿name 的中规中矩 // obj = “value3”; // 这种方法行不通
HttpContext.Current.Application[name] = “value3”; } return
(string)HttpContext.Current.Application[name]; // 用 []
取值时,等同于 Get 方法

l 存款和储蓄网址共用最新音讯,供全体网页更新。

上边代码中,间接改良 obj
是无效的,然而遭遇对象的话,如下代码是有效的。表达:那是 C#
值引用、地址引用的知识点,与 Application 非亲非故。

l 记录网址中个网页同一条广告被点击的次数或时间。

((Site)obj).Url = “222”; // 行得通

l 存款和储蓄供全体网页使用的数据库数据。

l 分裂用之间通信,比方多客商闲扯室,多客户游戏等

关于 ASP.NET 的 Application 的用法,与 Session
极度例外。上边来寻访详细的介绍:

Session的用法

后生可畏、Session.Add 名称生机勃勃致时,不会再也,而是覆盖。

?

1

2

3

Session.Add(“s1”, 1);

Session.Add(“s1”, 2);

// s1 终极独有一个值,便是 2。

二、名称忽视大小写。

?

1

2

Session.Add(“s1”, 1);

Response.Write(Session[“S1”]); // 值为 1

三、Session Add 后立即就可取到值(Remove 同理),这一点差异于
Cookie,Cookie 要等到下个页面才有。

?

1

2

Session.Add(“s1”, 1);

Response.Write(Session[“s1”] == null); // False,它不为 null

四、存储的 Session 数据类型为 object,最佳用 Convert 调换。

?

1Convert.ToInt32(Session[“s1”]);

若是调换为 string 最棒用 Convert.ToString(卡塔尔国,实际不是Session[“s1”].ToString(卡塔尔国,因为如果 Session 为 null,用后法就能报错。

五、在类中央银行使 Session。

?

1System.Web.HttpContext.Current.Session

Application 的用法

名称再一次难题

www.qy186.com,?

1

2

3

4

5

6

7

8

HttpContext.Current.Application.Add(“key1”, “value1”);

HttpContext.Current.Application.Add(“key2”, “value2”);

HttpContext.Current.Application.Add(“KEY2”, “value3″卡塔尔国; // name
忽略大小写

intcount = HttpContext.Current.Application.Count; // 3 个

string[] keys = returnHttpContext.Current.Application.AllKeys; //
key1、key2、key2

strings = (string)HttpContext.Current.Application.Get(“key2”); // value2

strings2 = (string)HttpContext.Current.Application.Get(2); // value3

如上代码,结果大家在备考中列出了。能够看见 Application
遭受键值相似,它既不报错,也不隐蔽早前的,而是同有的时候间设有。用键值名称去取值时,取到的是同名中率先个打点的值。假若非要取前面包车型客车,就用
index。

若是我们要遇相近 name,就覆盖,可用下边包车型大巴代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

HttpContext.Current.Application.Add(“key1”, “value1”);

// HttpContext.Current.Application.Add(“key2”, “value2”);

stringname = “key2”;

objectobj = HttpContext.Current.Application.Get(name);

if(obj == null)

{

 // 空头支票,直接助长

 HttpContext.Current.Application.Add(name, “value2”);

}

else

{

 // 存在,不可能向来调用 Add 方法,那样会促成多个相近 name 的条款

 // obj = “value3”; // 这种方法行不通

 HttpContext.Current.Application[name] = “value3”;

}

return(string)HttpContext.Current.Application[name]; // 用 []
取值时,等同于 Get 方法

地点代码中,直接改变 obj
是不行的,可是遭逢对象的话,如下代码是立竿见影的。表明:这是 C#
值援用、地址援用的知识点,与 Application 非亲非故。

?

1((Site)obj).Url = “222”; // 行得通

总结

上述正是这篇作品的全部内容了,希望本文的内容对我们的求学恐怕办事能带给一定的援救,固然有问号大家能够留言交换,多谢大家的支撑。

相关文章