2012-02-02 34 views
4

我有問題序列化視圖狀態的數據。我使用VS2010,並試圖將屬性添加到視圖狀態我收到以下錯誤消息時:錯誤序列化爲視圖狀態

Error serializing value 'System.Collections.Generic.List`1[Access.ARW.Business.Filters.Parameters.Parameter]' of type 'System.Collections.Generic.List`1[[Access.ARW.Business.Filters.Parameters.Parameter, Access.ARW.Business, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].' 

我加了[Serializable]屬性我想連載類以上,但我仍然得到這個錯誤...任何想法

這裏是財產申報這是A類:

private List<Filters.Parameters.Parameter> ReportParameters 
{ 
    get 
    { 
     if (ViewState["ReportParameters"] == null) 
     { 
      ViewState["ReportParameters"] = 
       new List<Filters.Parameters.Parameter>(); 
     } 
     return (List<Filters.Parameters.Parameter>) ViewState["ReportParameters"]; 
    } 

    set 
    { 
     ViewState["ReportParameters"] = value; 
    } 
} 
+2

您的課程是否包含更多的對象?如果是的話,你的對象層次結構中的所有東西都必須標記爲[Serializable] – 2012-02-02 17:02:45

+0

請發佈代碼示例..它可以幫助你理解你的代碼在做什麼 – MethodMan 2012-02-02 17:03:21

+0

@pjmonks - 是的,有幾個類彼此相關 - 這些都有[序列化]屬性添加到他們.... – user559142 2012-02-02 17:05:00

回答

6

您忘了添加Serializable屬性的類的組件之一?嘗試向ViewState逐個添加類的各個部分,直到找到錯誤的部分。

+0

嗯,這是不可能的,因爲來源是巨大的! – user559142 2012-02-02 17:20:19

+6

分而治之是一項基本的調試技巧。我不明白如何採取「巨大」的東西,並暫時將其分成更小的塊可能是一個問題。如果它真的是'巨大',那麼它可能不屬於ViewState。 – 2012-02-02 17:43:23

+0

如何創建單元測試以確保您的對象可序列化? – 2012-02-02 18:33:18