2010-06-23 11:18:41
涉及的技术内容包括:ASM、ANSI C、.NET/C#、Python、Linux/Ubuntu 等。
记录读书笔记、生活点滴。关注基础理论和开发……
除特别标注外,所有文章均为作者原创,转载请注明出处。谢谢!

  查看 "推荐文章目录"。  


  研发中心长期招聘开发人员,详情请点击 "Linux/C, Python 职位"、 ".NET/C# 职位"。
  雨痕内部技术交流群,欢迎熟识的朋友参与。 将 添加为您的 MSN 联系人即可。
  为杜绝垃圾广告的侵扰,只有注册用户可以发表评论和留言。
  如果有什么问题,可以单击右侧图标给雨痕发消息。( 绿色: 在线; 灰色: 脱机)
浏览模式: 普通 | 列表
9月, 2006 | 1

ASP.NET 页缓存

[ 2006-09-03 19:20:29 | 作者: yuhen ]
使用页缓存可大大提高系统的性能,ASP.NET 的页缓存由 OutputCacheModule 控制。OutputCacheModule 会根据相关环境参数来决定输出结果,也正因为这样在缓存有效期内不会调用页方法和事件。另外页缓存(System.Web.HttpCachePolicy)和程序缓存(System.Web.Caching.Cache)并不是一回事。

1. AddValidationCallback

OutputCacheModule 会在每次请求时回调 HttpCacheValidateHandler,因此我们可以通过 HttpCachePolicy.AddValidationCallback() 方法来进行一些针对缓存的操作。

如下面的例子中,当请求带有 "cache=0" 参数时修改验证状态,直接执行当前请求,而不是从缓存输出。(修改验证状态仅对当前请求有效,并不会影响整个缓存策略。)
...

阅读全文…

GetCallingMethod

[ 2006-09-03 13:12:18 | 作者: yuhen ]
某些时候我们希望知道方法被谁调用,尤其是那些 CallBack 方法。
using System.Diagnostics;
using System.Reflection;

static MethodBase GetCallingMethod()
{
    StackFrame frame = new StackFrame(2, false);
    return frame.GetMethod();
}

static void Test()
{
    MethodBase method = GetCallingMethod();
    Console.WriteLine("{0}.{1}", method.ReflectedType, method.Name);
}

StackFrame 保存了调用堆栈信息,我们通过传入要跳过的 skipFrames ...

阅读全文…
1