.NET中的序列化异常:System.InvalidOperationException:您必须在System.Collections.Generic.Stack`1上实现默认访问器

时间:2008-12-29 20:56:15

标签: .net generics serialization

我想做的就是

XmlSerializer serializer = new XmlSerializer(typeof(Stack<int>));

我在运行时得到以下内容:

System.InvalidOperationException:您必须实现默认访问者 System.Collections.Generic.Stack`1 [[System.Int32,mscorlib,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = b77a5c561934e089]]因为它继承自ICollection。

我不应该序列化Stack<int>吗?

1 个答案:

答案 0 :(得分:8)

由于Stack类没有默认访问器(例如索引),因此无法使用该方法对其进行序列化。

我建议将堆栈复制到List然后序列化列表。

List<int> serializableLIst = new List<int>( myStack );
XmlSerializer serializer = new XmlSeralizer(typeof(List<int>));

看看是否效果不佳。