ASP.net,将对象添加到会话变量

时间:2011-11-08 19:56:07

标签: c# asp.net session

我正在尝试在回发中添加一个对象到一个会话变量。我的代码看起来类似于以下内容。

  Supply sup =  Supplies.GetSupply(supplyItemID);

  Session["CartObjects"] += sup;

现在,编译器抛出一个错误,指出“+ =”运算符不能用于'object'和'Supply'类型。我是否需要在我的Supply对象上实现允许添加它的接口?这是可能的,还是我以完全错误的方式思考这个问题。

3 个答案:

答案 0 :(得分:11)

试试这个:

Supply sup =  Supplies.GetSupply(supplyItemID); 
var cartObjects =  (Session["CartObjects"] as List<Supply>) ?? new List<Supply>();
cartObjects.Add(sup);
Session["CartObjects"] = cartObjects;

答案 1 :(得分:5)

除非您尝试创建某种类型的数组,否则语法只是

Session["CartObjects"] = sup;

答案 2 :(得分:2)

不,你不需要,只需创建一个供应清单并将其保存在会话中

var supplyList = new List<Supply >();
Supply sup =  Supplies.GetSupply(supplyItemID);
supplyList.Add(sup);
Session["CartObjects"] =supplyList;

and 
and cast it as supply List
var list = Session["CartObjects"] as List<Supply >