<span style="color: #0000ff;">namespace<span style="color: #000000;"> Wolfy.AngularJs.Service
{
<span style="color: #808080;">/// <span style="color: #808080;">
<span style="color: #808080;">///<span style="color: #008000;"> UserInfo 的摘要说明
<span style="color: #808080;">/// <span style="color: #808080;">
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> UserInfo : IHttpHandler
{
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> ProcessRequest(HttpContext context)
{
</span><span style="color: #0000ff;">int</span> page = Convert.ToInt32(context.Request[<span style="color: #800000;">"</span><span style="color: #800000;">page</span><span style="color: #800000;">"</span><span style="color: #000000;">]);
</span><span style="color: #0000ff;">int</span> pageSize = <span style="color: #800080;">20</span><span style="color: #000000;">;
context.Response.ContentType </span>= <span style="color: #800000;">"</span><span style="color: #800000;">application/json</span><span style="color: #800000;">"</span><span style="color: #000000;">;
List</span><Person> lstPersons = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">var</span> obj = context.Cache.Get(<span style="color: #800000;">"</span><span style="color: #800000;">persons</span><span style="color: #800000;">"</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">if</span> (obj == <span style="color: #0000ff;">null</span><span style="color: #000000;">)
{
lstPersons </span>= <span style="color: #0000ff;">new</span> List<Person><span style="color: #000000;">();
</span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i < <span style="color: #800080;">1000</span>; i++<span style="color: #000000;">)
{
lstPersons.Add(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Person()
{
ID </span>= i + <span style="color: #800080;">1</span><span style="color: #000000;">,Gender </span>= i % <span style="color: #800080;">2</span> == <span style="color: #800080;">0</span> ? <span style="color: #0000ff;">true</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">,Name </span>= <span style="color: #800000;">"</span><span style="color: #800000;">wolfy</span><span style="color: #800000;">"</span> + (i + <span style="color: #800080;">1</span><span style="color: #000000;">).ToString()
});
}
context.Cache.Insert(
</span><span style="color: #800000;">"</span><span style="color: #800000;">persons</span><span style="color: #800000;">"</span><span style="color: #000000;">,lstPersons,</span><span style="color: #0000ff;">null</span><span style="color: #000000;">,DateTime.Now.AddSeconds(</span><span style="color: #800080;">20</span><span style="color: #000000;">),Cache.NoSlidingExpiration,CacheItemPriority.Low,CacheItemRemovedCallback);
}
</span><span style="color: #0000ff;">else</span><span style="color: #000000;">
{
lstPersons </span>= obj <span style="color: #0000ff;">as</span> List<Person><span style="color: #000000;">;
}
JavaScriptSerializer jss </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> JavaScriptSerializer();
</span><span style="color: #008000;">//</span><span style="color: #008000;">分页</span>
<span style="color: #0000ff;">var</span> pageList = lstPersons.Skip(pageSize * (page - <span style="color: #800080;">1</span><span style="color: #000000;">)).Take(pageSize);
</span><span style="color: #0000ff;">string</span> json =<span style="color: #000000;"> jss.Serialize(pageList);
context.Response.Write(json);
}
</span><span style="color: #008000;">//</span><span style="color: #008000;">这个为缓存移除时的回调函数,一定要保持与 Cache.Insert()方法中的最后一个参数名字一致,
</span><span style="color: #008000;">//</span><span style="color: #008000;">这里使用了委托,你可以在 Cache.Insert()这个函数中转定义看到的,所以这里的格式就只能按我写的这种方法签名写。</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> CacheItemRemovedCallback(<span style="color: #0000ff;">string</span> key,<span style="color: #0000ff;">object</span><span style="color: #000000;"> value,CacheItemRemovedReason reason)
{
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span><span style="color: #000000;"> IsReusable
{
</span><span style="color: #0000ff;">get</span><span style="color: #000000;">
{
</span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;
}
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Person
{
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> 编号
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> ID { <span style="color: #0000ff;">set</span>; <span style="color: #0000ff;">get</span><span style="color: #000000;">; }
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> 姓名
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span> Name { <span style="color: #0000ff;">set</span>; <span style="color: #0000ff;">get</span><span style="color: #000000;">; }
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> 创建时间
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
<span style="color: #0000ff;">public</span> DateTime CreateDate { <span style="color: #0000ff;">set</span>; <span style="color: #0000ff;">get</span>; } =<span style="color: #000000;"> DateTime.Now;
</span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></span>
<span style="color: #808080;">///</span><span style="color: #008000;"> 性别,true 男 false 女
</span><span style="color: #808080;">///</span> <span style="color: #808080;"></summary></span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> Gender { <span style="color: #0000ff;">set</span>; <span style="color: #0000ff;">get</span>; } = <span style="color: #0000ff;">true</span><span style="color: #000000;">;
}
}