我在嘗試將會話變量強制轉換爲屬於變量類型時出現了一些「幾乎隨機」的錯誤。 只是要清楚:ASP.NET不能在相同類型的變量中投射會話變量
我有一個類「Elemento的」,我只是創建它的istance並把它放在我的會話變量:
Elemento elem = new Elemento(id, quantity);
list.Add(elem);
context.Session["cart"] = list;
現在我要收回我的列表,我試圖做到這一點:
list = (List<Elemento>)context.Session["cart"];
那麼..這個「有時」的作品,有時不是!第一次我嘗試了它的工作flawlessy,但現在我有「內部服務器錯誤500」與此錯誤:
Impossibile eseguire il cast di [A]System.Collections.Generic.List
1[Elemento] a [B]System.Collections.Generic.List
1[Elemento]. Il tipo A ha origine da 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' nel contesto 'LoadNeither' nella posizione 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'. Il tipo B ha origine da 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' nel contesto 'LoadNeither' nella posizione 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'.
翻譯吧..
Cannot cast [A]System.Collections.Generic.List
1[Elemento] to [B]System.Collections.Generic.List
1[Elemento]. Type A have origin from 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' with context 'LoadNeither' and position 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'. Type B have origin from 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' with context 'LoadNeither' and position 'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'.
我可以解決這個「一段時間「清空IIS緩存..但它會再次發生時,我從Visual Studio中生成解決方案。
我在一些地方閱讀,我可以使用接口解決此問題..但由於我仍然在學習如何使用它們,我不能直接嘗試,現在有一些經過測試的解決方案呢?
編輯: 工程與krshekhar解決方案:
list = context.Session["cart"] as List<Elemento>;
謝謝!
檢查您的會話context.Session [「cart」]是否存在,並且在投射前它不爲null。 –
是的,我已經這樣做,抱歉沒有寫在主帖! – HypeZ
嘗試使用list = context.Session [「cart」]作爲列表; –