Serialisieren eines ASP.NET UserControl

Ich habe eine Anwendung mit einem GridView das GridView haben, in Ihrem PagerTemplate, ein GridViewPager das ist ein UserControl.

Nun bin ich versucht zu speichern GridViewPager in ein ViewState-und ich habe da ein problem mit der Serialisierung. Asp.Net sagen Sie mir, dass das Klasse ist nicht als serialisierbar markiert. Ich versuche zu Kennzeichnen, dass Sie serialisierbar sind, wie diese:

namespace Avalon.View.UserControls.Pagers
{
    [Serializable]
    public partial class GridViewPager : System.Web.UI.UserControl
    {
        private GridView _gridView;
        public event EventHandler OnTextPageChanged;

        //Methods, properties...
    }
}

Aber Sie funktionieren nicht,

Mein code ist einfach, mal sehen:

//Get and set the GridViewPager to ViewState
public partial class ChamadoList : System.Web.UI.UserControl
{
    //Here a Get and set my GridViewPager into ViewState
    public GridViewPager gvp
    {
        get { return ((GridViewPager)ViewState["GridViewPager"]); }
        set
        {
            if (value == null)
                ViewState["GridViewPager"] = null;
            else
                ViewState["GridViewPager"] = value;
        }
    }

    //Looping in a grid View i get the GridViewPager and put it on ViewState
    protected void gvListaChamados_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //Here a get the pager 
        if (e.Row.RowType == DataControlRowType.Pager)
        {
            gvp = (GridViewPager)e.Row.FindControl("GridViewPager1");
        }
    }

    //...
}

Und hier ist der Fehler

Server Error in '/' Application.

Typ 'ASP.view_usercontrols_pagers_gridviewpager_ascx' in Assembly 'App_Web_epwoiz7x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ist nicht als serialisierbar markiert.
Beschreibung: Eine nicht behandelte Ausnahme ist aufgetreten während der Ausführung der aktuellen Webanforderung. Bitte überprüfen Sie die Stapelüberwachung für weitere Informationen über den Fehler und wo Sie Ihren Ursprung in den code.

Exception Details: System.- Laufzeit.Serialisierung.SerializationException: der Typ 'ASP.view_usercontrols_pagers_gridviewpager_ascx' in Assembly 'App_Web_epwoiz7x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ist nicht als serialisierbar markiert.

Quelle Fehler:

Wurde eine unbehandelte Ausnahme generiert, die während der Ausführung der aktuellen Webanforderung. Informationen über den Ursprung und die Position der Ausnahme kann identifiziert werden mit der Ausnahmestapelüberwachung unten.

Stack Trace:

[SerializationException: der Typ 'ASP.view_usercontrols_pagers_gridviewpager_ascx' in Assembly 'App_Web_epwoiz7x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ist nicht als serialisierbar markiert.]
System.- Laufzeit.Serialisierung.FormatterServices.InternalGetSerializableMembers(RuntimeType type) +7733643
System.- Laufzeit.Serialisierung.FormatterServices.GetSerializableMembers(Typ, StreamingContext context) +258
System.- Laufzeit.Serialisierung.Formatierer.Binären.WriteObjectInfo.InitMemberInfo() +111
System.- Laufzeit.Serialisierung.Formatierer.Binären.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter Konverter, ObjectWriter objectWriter) +161
System.- Laufzeit.Serialisierung.Formatierer.Binären.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter Konverter, ObjectWriter objectWriter) +51
System.- Laufzeit.Serialisierung.Formatierer.Binären.ObjectWriter.Serialisieren(Objekt, Grafik, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) +410
System.- Laufzeit.Serialisierung.Formatierer.Binären.BinaryFormatter.Serialize(Stream serializationStream, Objekt, Grafik, Header[] Header, Boolean fCheck) +134
System.- Laufzeit.Serialisierung.Formatierer.Binären.BinaryFormatter.Serialize(Stream serializationStream -, Objekt-Diagramm) +13
System.Web.UI.ObjectStateFormatter.SerializeValue(SerializerBinaryWriter Schriftsteller, Object value) +845

[ArgumentException: Fehler serialisieren Wert 'ASP.view_usercontrols_pagers_gridviewpager_ascx' vom Typ 'ASP.view_usercontrols_pagers_gridviewpager_ascx.']
System.Web.UI.ObjectStateFormatter.SerializeValue(SerializerBinaryWriter Schriftsteller, Object value) +3395
System.Web.UI.ObjectStateFormatter.Serialize(Stream Ausgabestrom, Objekt stateGraph) +110
System.Web.UI.ObjectStateFormatter.Serialisieren(Objekt stateGraph) +57
System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Serialize(Object state) +4
System.Web.UI.Util.SerializeWithAssert(IStateFormatter formatter, Object stateGraph) +37
System.Web.UI.HiddenFieldPageStatePersister.Save () - +79
System.Web.UI.Seite.SavePageStateToPersistenceMedium(Object state) +105
System.Web.UI.Seite.SaveAllState() +236
System.Web.UI.Seite.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1099


Version Information: Microsoft .NET Framework, Version:2.0.50727.3082; ASP.NET Version:2.0.50727.4028

InformationsquelleAutor Ewerton | 2010-02-09

Schreibe einen Kommentar