序列化asp.net对象时出错(表)

时间:2015-12-05 12:27:22

标签: c# sql asp.net serialization

我想将整个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'。

这种情况只发生在我尝试过的所有类型的Table类型中。

2 个答案:

答案 0 :(得分:0)

System.Web.UI.WebControls.Table类型未标记为Serializable且未实施ISerializable。如果没有这些,您无法序列化它。您甚至无法序列化Rows属性。 TableRow以及它使用的其他类不可序列化。

最好的方法是将Rows属性中的值读取为可以序列化的值(例如List<List<string>>或最好是更强类型的值)并序列化。

答案 1 :(得分:0)

创建一个类,并使用表中的值填充其属性并序列化该对象

喜欢

public class SomeClass { 属性。 ...}

SomeClass myClass = new SomeClass()

填充

var serializer = new XmlSerializer(SomeClass)。

像这样的东西