例外:2年后无效的演员表

时间:2012-04-16 06:48:59

标签: c# asp.net exception casting visual-studio-2005

我的VS2005网络应用程序在过去两年中运行良好。但今天它突然开始抛出Invalid Cast的例外。

我的代码是:

int DistID = (int) this.Session["DISTRIBUTOR_ID"];

这条线工作了两年多。

但现在它突然开始抛出无效演员的异常。我检查了调试模式

this.Session["DISTRIBUTOR_ID"]

的有效int值为1234。

我通过将代码更改为:

来解决问题
int DistID = Convert.ToInt32(this.Session["DISTRIBUTOR_ID"]);

但是我的老板问我为什么突然发生了这个错误。

有人可以回答这个问题吗?

1 个答案:

答案 0 :(得分:4)

Convert.ToInt32()函数在内部调用解析函数,但是第一个实现是使用装箱和拆箱。 会话中的值在分配时应为整数类型。