簡體   English   中英

序列化ASP.NET對象時出錯(表)

[英]Error serializing asp.net objects (table)

我想將整個asp表保存為SQL作為對象,而不是保存表的每個元素,然后從中重建表。 我想到的是序列化對象,將其作為字符串保存到SQL,然后檢索它並在需要時反序列化。 我所做的就是將表傳遞給Serialize方法:

public static string Serialize(Table table)
    {
        var serializer = new XmlSerializer(typeof(Table));
        TextWriter writer = new StringWriter();
        serializer.Serialize(writer, table);
        return writer.ToString();
    }

但是這條線

var serializer = new XmlSerializer(typeof(Table));

給我一個例外:

用戶代碼未處理InvalidOperationException。發生錯誤,反映了類型'System.Web.UI.WebControls.Table'。

這僅在我嘗試過的所有類型的表類型中發生。

System.Web.UI.WebControls.Table類型未標記為Serializable ,並且未實現ISerializable 如果沒有這些,則無法序列化。 您甚至無法序列化Rows屬性。 TableRow及其使用的其他類不可序列化。

最好的方法是將Rows屬性中的值讀入可以序列化的內容(例如List<List<string>>或最好是更強類型的內容)並進行序列化。

創建一個類,並使用表中的值填充其屬性並序列化該對象

喜歡

公共類SomeClass {屬性。 ...}

SomeClass myClass =新的SomeClass()

填充它

var serializer =新的XmlSerializer(SomeClass)。

像這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM