【发布时间】:2017-08-22 14:22:49
【问题描述】:
我的班级用 [Serializable] 属性装饰。我正在创建该类的对象并添加到数据表中。当我使用 BinarySerializer 序列化数据表时,出现错误
Type 没有实现 IXmlSerializable 接口,因此不能 继续序列化。
这里是示例代码
[Serializable]
class PropertyData
{
// Properties
}
class Main
{
PropertyData obj = new PropertyData();
dttable.Rows.Add(val1,val2,val3, obj);
// ...
ObjbinaryFormatter.Serialize(stream, dttable); // throws exception
}
请提出解决方案。
【问题讨论】:
-
也许你应该创建一个
DataSet,将RemotingFormat属性设置为SerializationFormat.Binary,添加DataTable并序列化DataSet。 -
你能发布一个可编译的例子吗?小细节很重要,你忽略了太多。您是否尝试序列化
PropertyData中的一些 unusual 类型? -
展示如何创建 BinaryFormatter 和 DataTable 对象。
-
为了增加我们能够给出有意义答案的机会,我们需要查看 minimal reproducible example,或者至少查看包含异常类型的异常的完整
ToString()输出,消息、回溯和内部异常(如果有)。例如,BinarySerializer是什么?这实际上是BinaryFormatter吗?如果是BinaryFormatter,见blogs.msdn.microsoft.com/jaredpar/2009/03/31/is-it-serializable
标签: c# serialization