06 2013 档案

摘要:下面具体说明控件生命周期的11阶段:1.初始化(对应OnInit方法)完成控件的初始化并通过ProcessRequest方法递归遍历所有的子控件以及依次调用它们的OnInit方法。可以通过重写OnInit方法来扩展功能或增加初始化内容。除此之外,本阶段将打开控件的视图跟踪功能(调用TraceViewState方法),这样才能在页面回发时正确恢复控件的属性。2.加载视图状态(对应LoadViewState方法)本阶段仅在页面回发时才执行,事实上,在第一次访问页面时还没有获取到存储在视图状态中的数据。本阶段完成加载视图状态到控件(前提是该控件启用视图状态),对于复杂对象则需要重写LoadViewS 阅读全文
posted @ 2013-06-30 23:13 DBNull 阅读(174) 评论(0) 推荐(0) 编辑
摘要:场景在WEB系统开发中,我们经常面对这样的需求:如何在一个请求中共享数据或对象实例?之前我都会用HttpContext.Current.Items。然而有一天我发现了两个事实:一、每个请求都是在一个线程中执行的;二、[ThreadStatic]可以标注某个静态字段为每个线程提供独立的存储。面对这两个发现,我得出了这个结论:可以用[ThreadStatic]替换HttpContext.Current.Items。问题可以用[ThreadStatic]替换HttpContext.Current.Items吗?实验实验素材using System;using System.Collections.G 阅读全文
posted @ 2013-06-29 00:16 DBNull 阅读(362) 评论(0) 推荐(0) 编辑
摘要:HttpContext的Items集合是ASP.NET保守得最好的秘密之一。它是IDictionary键/值对的对象集合,在HttpRequest的生存期中共享。它只存在于HttpRequest中。状态为什么要存储这么短的时间?有如下原因:在IHttpModule和IHttpHandler之间共享内容。如果编写一个定制的IHttpModule,就可以存储用户的信息,供以后在页面中使用。在一个页面上的两个UserControl实例之间通信。假定编写一个用于横幅广告的UserControl。该控件的两个实例可以从HttpContext.Items中选择广告,防止在同一个页面上显示重复的内容。存储成 阅读全文
posted @ 2013-06-29 00:14 DBNull 阅读(1260) 评论(0) 推荐(0) 编辑
摘要:在.net 编程环境中,系统的资源分为托管资源和非托管资源。 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作。也就是说对于您的应用程序创建的大多数对象,可以依靠 .NET Framework 的垃圾回收器隐式地执行所有必要的内存管理任务。 资源分为两种,托管的内存资源,这是不需要我们操心的,系统已经为我们进行管理了;那么对于非托管的资源,这里再重申一下,就是Stream,数据库的连接,GDI+的相关对象,还有Com对象等等这些资源,需要我们手动去释放。 对于非托管资源,您在应用程序中使用完这些非托管资源之... 阅读全文
posted @ 2013-06-27 00:22 DBNull 阅读(361) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示