セッションから XML ファイルを作成する必要がある課題に取り組んでいます。キャストに問題があり、カート内のアイテムが保存されているリストからのものであることは認識していますが、修正方法がわかりません。
ボタンのクリックは XML の作成ボタンであり、これが正確なエラーです:
Unable to cast object of type Utils.ShoppingCart' to type 'System.Collections.Generic.List
1[CartItem]'.
Line 86: List<CartItem> cartItems = new List<CartItem>();
Line 87: cartItems = (List<CartItem>)Session["UserCart"];
これがコードです。さらに提供する必要がある場合はお知らせください。フィードバックをいただければ幸いです。
protected void Button1_Click(object sender, EventArgs e)
{
ShoppingCart sCart = (ShoppingCart)Session["UserCart"];
List<CartItem> cartItems = new List<CartItem>();
cartItems = (List<CartItem>)Session["UserCart"];
XmlWriterSettings sets = new XmlWriterSettings();
sets.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Server.MapPath("~/items.xml"), sets))
{
writer.WriteStartDocument();
writer.WriteStartElement("cartItems");
foreach (CartItem i in cartItems)
{
writer.WriteStartElement("CartItem");
writer.WriteElementString("ITEM_ID", i.ITEM_ID.ToString());
writer.WriteElementString("ITEM_QUANTITY", i.ITEM_QUANTITY.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
Label1.Text = "XML written successfully!";
Label2.Text = "<a href='DOM/cart.xml'> XML created successfully. </a>";
}
}