Session Variable-InvalidCastException

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Don Miller

    #1

    Session Variable-InvalidCastException

    I use a Session variable to store a custom object (all properties contain
    strings) between postbacks. On occasion, mostly when I change and save code,
    when I refresh the web page to see the changes, I get an error:

    "System.Invalid CastException was unhandled by user code -Unable to cast
    object of type 'QueryParameter s' to type 'QueryParameter s'"

    in the function below which is called during Page_Load (_queryParamete rs =
    QueryParameters .getInstance())

    Public Shared Function getInstance() As QueryParameters
    Dim instance As QueryParameters
    If IsNothing(Curre nt.Session(SESS ION_VARIABLE)) Then
    instance = New QueryParameters ()
    instance.saveQP ToSession()
    Else
    instance = Current.Session (SESSION_VARIAB LE)
    End If
    Return instance
    End Function

    When I debug, a valid Session variable exists because the code goes to the
    Else statement, and in the Watch window, I can see all the properties of the
    custom object in the Session variable. Since 'instance' is typed as
    QueryParameters and a Session variable exists that holds the object, I don't
    understand why there is an error since these both seem to be typed correctly
    as QueryParameters . Even when I explicitly type the session variable
    (CType(Current. Session(SESSION _VARIABLE), QueryParameters )) the same error
    appears.

    If I close the browser completely, everything works, but I hate to have to
    close a browser with every iteration of code changes.

    Does anyone know why this error appears? Thanks for any help.


  • Laurent Bugnion, MVP

    #2
    Re: Session Variable-InvalidCastExce ption

    Hi,

    Don Miller wrote:
    I use a Session variable to store a custom object (all properties contain
    strings) between postbacks. On occasion, mostly when I change and save code,
    when I refresh the web page to see the changes, I get an error:
    >
    "System.Invalid CastException was unhandled by user code -Unable to cast
    object of type 'QueryParameter s' to type 'QueryParameter s'"
    The symptoms make me think of that error:


    Could that be it?

    Greetings,
    Laurent
    >
    in the function below which is called during Page_Load (_queryParamete rs =
    QueryParameters .getInstance())
    >
    Public Shared Function getInstance() As QueryParameters
    Dim instance As QueryParameters
    If IsNothing(Curre nt.Session(SESS ION_VARIABLE)) Then
    instance = New QueryParameters ()
    instance.saveQP ToSession()
    Else
    instance = Current.Session (SESSION_VARIAB LE)
    End If
    Return instance
    End Function
    >
    When I debug, a valid Session variable exists because the code goes to the
    Else statement, and in the Watch window, I can see all the properties of the
    custom object in the Session variable. Since 'instance' is typed as
    QueryParameters and a Session variable exists that holds the object, I don't
    understand why there is an error since these both seem to be typed correctly
    as QueryParameters . Even when I explicitly type the session variable
    (CType(Current. Session(SESSION _VARIABLE), QueryParameters )) the same error
    appears.
    >
    If I close the browser completely, everything works, but I hate to have to
    close a browser with every iteration of code changes.
    >
    Does anyone know why this error appears? Thanks for any help.
    >
    >
    --
    Laurent Bugnion [MVP ASP.NET]
    Software engineering, Blog: http://www.galasoft-LB.ch
    PhotoAlbum: http://www.galasoft-LB.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch

    Comment

    • Don Miller

      #3
      Re: Session Variable-InvalidCastExce ption

      >"System.Invali dCastException was unhandled by user code -Unable to cast
      >object of type 'QueryParameter s' to type 'QueryParameter s'"
      >
      The symptoms make me think of that error:

      >
      Could that be it?
      I tried the simple workaround (changing the web config file system "batch"
      to false) and the error message persisted (run the application, type in
      garbage in the code-behind, erase the garbage, save the file, hit refresh in
      the browser). I am leary of applying the hotfix. I may just end up putting
      my properties into hidden fields instead of an object in a Session variable
      and forgetting this bug.

      Something to do with changing the source code file and compilation.



      Comment

      Working...