.net - .NET : System. InvalidOperationException :

我想做的就是

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

我在运行时得到以下信息:

System.InvalidOperationException :您必须在 System.Collections.Generic.Stack `1 [[System.Int32, mscorlib, 版本=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] 因为它继承自ICollection。

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

最佳答案

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

我建议将您的堆栈复制到一个列表,然后序列化该列表。

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

看看这是否效果更好。

关于.net - .NET : System. InvalidOperationException : You must implement a default accessor on System. Collections.Generic.Stack`1 中的序列化异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/398642/

相关文章:

sql-server - 从现有数据库生成 SQL DDL 和内容的工具

.htaccess - 需要 mod_rewrite URL 信息

c++-cli - 如何将 System::IntPtr 转换为 char*

python - sys.getrefcount 继续

pdf - PDF 的 BitsPerComponent 如何转换为图像的每像素位数?

vb.net - 将参数用于 Oracle ODBC 连接

sql-server-2005 - 强制 SQL Server 列为特定值

wpf - ListBox 中的 TextBox、Button 和 ListBox

visual-c++ - SetWindowPos() 函数不移动窗口?

installation - 如何通过 .msi 包修改 machine.config