ܺεĖ|,?yn)ڌW(xu)(x),ӛ.
,һ(g)ُ{(ln)r(sh),һ(g)ԶxCartManager(g)M(jn)Session,IJִa,䌍(sh)һ(g)PrivateArrayListɆT_cartÁCartInfo(sh),CartInfoְһ(g)ɆTProductInfo _productһ(g)double _moneny...(f)s.Ҷ]ŪκSerializableĖ|,...
C(j){(dio)ԇ]},ŵ(w)υsl(f)F(xin)@(g)ُ܇F(xin)dz֮,r(sh)Õr(sh),XúSessionĖ|yú,Еr(sh)ܴM(jn)ȥЕr(sh)治M(jn)?
^˱C(j)c(w)ĭh(hun),֪}϶cSessionStateP(gun).?yn)?w)Web Farm(ҌM(jn)̔(sh)O(sh)ó10).
һ҂һ(g)WEB Applicationĕr(sh),SessionStateMode=InProc,ɅҊweb.configļе
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
ڷ(w),?yn)ڶ(g)M(jn),ҪČij mode=StateServer,t͕(hu)ǰfSessionеֵ_ĬF(xin).,ε@Ӹһ,ϵy(tng)ֈ(bo)e(cu)fStateServer SqlServerɷNʽ(hu)ԒB(ti),Ҫǿл()...҂߀Ҫٌһ¿л.
ҪČܺ,ɻͽMɵ,ֻҪһԼ,:
[Serializable()]
public class ProductInfo {
private string f_SysID;
public string SysID {
get {
return this.f_SysID;
}
set {
this.f_SysID = value;
}
}
ڱCartInfo c ProductInfoɂ(g)@һ£ֻCartManagerԶԒ£
[Serializable]
public class CartManager : ISerializable
{
private ArrayList _cart=new ArrayList();
public CartManager()
{
}
protected CartManager(SerializationInfo info, StreamingContext context)
{
this._cart=(ArrayList)info.Getvalue("_cart",typeof(ArrayList));
}
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
info.Addvalue("_cart",this._cart);
}
private CartInfo findCartInfo(string sid)
{
foreach(CartInfo ci in this._cart)
{
if( ci.Product.SysID.Equals(sid) ) return ci;
}
return null;
}
public ArrayList getCart()
{
return this._cart;
}
@ӌ(sh)F(xin)(g)CartManager--CartInfo--ProductInfoĿл,Ǿһ...
³ԣ
http://www.cnblogs.com/sharetop/archive/2005/10/08/250286.html