ܺεĖ|,ڌW(xu)(x),ӛ.
,һُ{(ln)r,һԶxCartManagerMSession,IJִa,䌍һPrivateArrayListɆT_cartÁCartInfo,CartInfoְһɆTProductInfo _productһdouble _moneny...(f)s.Ҷ]ŪκSerializableĖ|,...
C{(dio)ԇ]},ŵ(w)υsl(f)F(xin)@ُ܇F(xin)dz֮,rÕr,XúSessionĖ|yú,ЕrܴMȥЕr治M?
^˱Cc(w)ĭh(hun),֪}϶cSessionStateP(gun).(w)Web Farm(ҌM̔(sh)O(sh)ó10).
һ҂һWEB Applicationĕr,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),ڶM,ҪČij mode=StateServer,t͕ǰfSessionеֵ_ĬF(xin).,ε@Ӹһ,ϵy(tng)ֈefStateServer SqlServerɷNʽԒ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ɂ@һ£ֻ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;
}
@ӌF(xin)CartManager--CartInfo--ProductInfoĿл,Ǿһ...
³ԣ
http://www.cnblogs.com/sharetop/archive/2005/10/08/250286.html