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

use*_*032 1 .net generics serialization

我所要做的就是

XmlSerializer serializer = new XmlSerializer(typeof(Stack<int>));
Run Code Online (Sandbox Code Playgroud)

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

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

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

pal*_*rse 8

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

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

List<int> serializableLIst = new List<int>( myStack );
XmlSerializer serializer = new XmlSeralizer(typeof(List<int>));
Run Code Online (Sandbox Code Playgroud)

看看是否效果不佳.