我想将整个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类型中。
答案 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)。
像这样的东西