<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="CacheObjectDataSource" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Cached object data source</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="_peopleGridView" runat="server"
DataSourceID="_personObjectDataSource"
EnableViewState="False" />
<asp:ObjectDataSource ID="_personObjectDataSource" runat="server"
CacheDuration="120"
EnableCaching="True" SelectMethod="GetPeople" DataObjectTypeName="Person"
TypeName="SampleData" />
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class CacheObjectDataSource : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Output.Write("objds.GetHashCode() = {0}<br />", _personObjectDataSource.GetType().GetHashCode());
Response.Output.Write("objds.CacheDuration = {0}<br />", _personObjectDataSource.CacheDuration);
Response.Output.Write("objds.CacheExpirationPolicy = {0}<br />", _personObjectDataSource.CacheExpirationPolicy);
Response.Output.Write("objds.SqlCacheDependency = {0}<br />", _personObjectDataSource.SqlCacheDependency);
Response.Output.Write("objds.Typename = {0}<br />", _personObjectDataSource.TypeName);
Response.Output.Write("objds.SelctMethod = {0}<br />", _personObjectDataSource.SelectMethod);
}
}
File: Person.cs
using System;
using System.Data;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public class Person
{
private int _age;
private string _name;
private bool _isMarried;
private DateTime _birthDay;
public int Age
{
get { return _age; }
set { _age = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public bool IsMarried
{
get { return _isMarried; }
set { _isMarried = value; }
}
public DateTime BirthDay
{
get { return _birthDay; }
set { _birthDay = value; }
}
public Person() { }
public Person(int age, string name, bool isMarried, DateTime birthDay)
{
_age = age;
_name = name;
_isMarried = isMarried;
_birthDay = birthDay;
}
}
public static class SampleData
{
public static ICollection<Person> GetPeople()
{
List<Person> ret = new List<Person>();
for (int i = 0; i < 10; i++)
ret.Add(new Person(i + 20, "Person " + i.ToString(), (i % 2) == 0,
DateTime.Now.AddYears(i-40)));
return ret;
}
}