【发布时间】:2016-10-31 15:01:54
【问题描述】:
我对序列化有一个大问题。 我不知道问题出在哪里,但我可以在课堂上显示所有元素。
我用节点制作了图表。 但唯一的问题。
我使用接口来实现一种用于连接的元素。 例如 bool 可以与 bool 等连接。
我有
[Serializable]
public class Node : IElement
{
//More Constructor..
public IEnumerable<NodeConnection> Connections { get { return connections; } }
public IEnumerable<NodeItem> Items { get { return nodeItems; } }
public ElementType ElementType { get { return ElementType.Node; } }
}
ElementType 是一个接口
使用节点:IElement
public interface IElement
{
ElementType ElementType { get; }
}
在序列化时出现此错误
BinaryFormatter bin = new BinaryFormatter();
FileStream fs = new FileStream(sv.FileName, FileMode.Create, FileAccess.ReadWrite);
bin.Serialize(fs,graph.graphNode); //Error here
Assembly 'Graph, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 中的类型'Example' 未标记为可序列化。
序列化方法中的graph.graphNode是一个简单的List 有人有想法吗?
【问题讨论】:
-
错误提及类型“示例”,请将其展示给我们,和/或确保它具有
[Serializable]属性。 -
它说示例类型不是可序列化的市场。你有示例课吗?你能展示那堂课的内容吗?它是市场可序列化的吗?
-
是的,它被标记为可序列化。看看我的示例序列化代码
bin.Serialize(fs,graph.graphNode);列表是这个public List<Node> graphNodes = new List<Node>();并且类被标记为可序列化查看顶部节点:IElement -
提供的代码没有提到这个
Example类。没有它,我们无能为力。 -
@Amy “示例”是 FormApplication,图表是 UserControl。和 graph.graphNode 是列表。从应用程序“示例”中,我只需编写一个 BinaryFormatter 并序列化 UserControl 中的所有元素。然后我有这个错误
标签: c# serialization