简体   繁体   English

C# - 从 HttpSessionState 读取时出现 InvalidCastException

[英]C# - InvalidCastException when reading from HttpSessionState

I have a very simple method that looks like this:我有一个非常简单的方法,如下所示:

    public void DoSmth(int y)
    {
        XXXXX x = (XXXXX)Session["key"];
        x.DoSmthElse(y);
    }

But I get an exception:但我得到一个例外:

System.InvalidCastException: Unable to cast object of type Z.YYYYY to type Z.XXXXX
   at XYZ.DoSmth(Int32 y)

Exception itself makes sense, but why possibly does it occur?异常本身是有道理的,但为什么会发生呢? What can I do to prevent it?我能做些什么来防止它? Why does Session["key"] have type there?为什么 Session["key"] 在那里有类型?

Exception itself makes sense, but why possibly does it occur?异常本身是有道理的,但为什么会发生呢?

What can I do to prevent it?我能做些什么来防止它?

  • You can check if Session["key"] contains the right type like this您可以检查 Session["key"] 是否包含这样的正确类型

    if (Session["key"] is XXXXX x) { x.DoSmthElse(y); }

Why does Session["key"] have type there?为什么 Session["key"] 在那里有类型?

  • each variable have a type每个变量都有一个类型

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM