viewstate and the IStateManager interface

Discussion in 'ASP .Net Building Controls' started by Rowland Shaw, Jan 25, 2005.

  1. Rowland Shaw

    Rowland Shaw Guest

    All the documentation I've found suggects that all you need to support on
    your object to stick it in the ViewState on a control is the IStateManager
    interface.

    However, with the IStateManager interface implemented (in my example on
    ComplexObject), I get the infamous error:
    [HttpException (0x80004005): The type 'MyCompany.MyProject.ComplexObject'
    must be marked as Serializable or have a TypeConverter other than
    ReferenceConverter to be put in viewstate.]

    There's been a lot of head scratching, and a lot of flicking through pages
    245 to 255 of MS Press' "Developing Asp.Net Server Controls and Components";
    but I'm still no wiser -- am I missing something blindingly obvious or is
    there really an amount of black magic required? (I suspect the former)
    Rowland Shaw, Jan 25, 2005
    #1
    1. Advertising

  2. Rowland Shaw

    Teemu Keiski Guest

    Hi,

    IStateManager means that object itself implements a interface similar to
    controls which have state management capability, means objects themselves
    save something (their current state) to view state (IStateMamager declares
    the inetrface for these saving/loading/tracking methods), but object
    instances itself are not put into the view state.

    E.g state and instances are kept separately (instances are recreated on
    postback and view state is then loaded to them to restore the state).
    IStateManager is meant to obejcts which aren't controls but work in the same
    context for example control styles, ListItems and so on.

    If you put object instances to ViewState, their implementation of
    IStateManager has nothing to do with this process but as error message
    indicates, in that case objects must have Serializable attribute applied to
    the class for automatic serialization and you can further customize this
    process by implementing ISerializable interface.

    --
    Teemu Keiski
    ASP.NET MVP, AspInsider
    Finland, EU


    "Rowland Shaw" <> wrote in message
    news:...
    > All the documentation I've found suggects that all you need to support on
    > your object to stick it in the ViewState on a control is the IStateManager
    > interface.
    >
    > However, with the IStateManager interface implemented (in my example on
    > ComplexObject), I get the infamous error:
    > [HttpException (0x80004005): The type 'MyCompany.MyProject.ComplexObject'
    > must be marked as Serializable or have a TypeConverter other than
    > ReferenceConverter to be put in viewstate.]
    >
    > There's been a lot of head scratching, and a lot of flicking through pages
    > 245 to 255 of MS Press' "Developing Asp.Net Server Controls and
    > Components";
    > but I'm still no wiser -- am I missing something blindingly obvious or is
    > there really an amount of black magic required? (I suspect the former)
    Teemu Keiski, Jan 26, 2005
    #2
    1. Advertising

  3. Rowland Shaw

    Teemu Keiski Guest

    And to add, yes option to having Serializable attribute is developing a
    TypeConverter for your object, it is the most efficient solution from
    viewstate standpoint. The key point in understanding what I said is
    explained on pages 245-246

    --
    Teemu Keiski
    ASP.NET MVP, AspInsider
    Finland, EU


    "Rowland Shaw" <> wrote in message
    news:...
    > All the documentation I've found suggects that all you need to support on
    > your object to stick it in the ViewState on a control is the IStateManager
    > interface.
    >
    > However, with the IStateManager interface implemented (in my example on
    > ComplexObject), I get the infamous error:
    > [HttpException (0x80004005): The type 'MyCompany.MyProject.ComplexObject'
    > must be marked as Serializable or have a TypeConverter other than
    > ReferenceConverter to be put in viewstate.]
    >
    > There's been a lot of head scratching, and a lot of flicking through pages
    > 245 to 255 of MS Press' "Developing Asp.Net Server Controls and
    > Components";
    > but I'm still no wiser -- am I missing something blindingly obvious or is
    > there really an amount of black magic required? (I suspect the former)
    Teemu Keiski, Jan 26, 2005
    #3
  4. Rowland Shaw

    Rowland Shaw Guest

    Thanks for taking the time to reply -- I think I'm a bit cleaer now.

    If/when I get a chance, I'll have to sit down and write an article on how to
    do this and explain it in terms I'd understand for the next time I (or anyone
    else) comes across this...


    "Teemu Keiski" wrote:

    > And to add, yes option to having Serializable attribute is developing a
    > TypeConverter for your object, it is the most efficient solution from
    > viewstate standpoint. The key point in understanding what I said is
    > explained on pages 245-246
    >
    > --
    > Teemu Keiski
    > ASP.NET MVP, AspInsider
    > Finland, EU
    >
    >
    > "Rowland Shaw" <> wrote in message
    > news:...
    > > All the documentation I've found suggects that all you need to support on
    > > your object to stick it in the ViewState on a control is the IStateManager
    > > interface.
    > >
    > > However, with the IStateManager interface implemented (in my example on
    > > ComplexObject), I get the infamous error:
    > > [HttpException (0x80004005): The type 'MyCompany.MyProject.ComplexObject'
    > > must be marked as Serializable or have a TypeConverter other than
    > > ReferenceConverter to be put in viewstate.]
    > >
    > > There's been a lot of head scratching, and a lot of flicking through pages
    > > 245 to 255 of MS Press' "Developing Asp.Net Server Controls and
    > > Components";
    > > but I'm still no wiser -- am I missing something blindingly obvious or is
    > > there really an amount of black magic required? (I suspect the former)

    >
    >
    >
    Rowland Shaw, Jan 27, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Steph
    Replies:
    2
    Views:
    1,646
    heislord5
    May 11, 2011
  2. Wildepiet
    Replies:
    0
    Views:
    1,850
    Wildepiet
    Jun 14, 2004
  3. Brad

    IStateManager in a class object

    Brad, Sep 29, 2005, in forum: ASP .Net
    Replies:
    6
    Views:
    1,828
    Steven Cheng[MSFT]
    Oct 10, 2005
  4. dionysus_sh

    IstateManager Problem

    dionysus_sh, Oct 25, 2007, in forum: .NET
    Replies:
    0
    Views:
    290
    dionysus_sh
    Oct 25, 2007
  5. Jiho Han

    IStateManager interface at design-time?

    Jiho Han, Jan 19, 2004, in forum: ASP .Net Building Controls
    Replies:
    1
    Views:
    108
    Teemu Keiski
    Jan 19, 2004
Loading...

Share This Page