Исключение сериализации в .NET: System.InvalidOperationException: необходимо реализовать средство доступа по умолчанию для System.Collections.Generic.Stack`1. - PullRequest
1 голос
/ 29 декабря 2008

Все, что я пытаюсь сделать, это

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

и я получаю следующее во время выполнения:

System.InvalidOperationException: Вы должны реализовать средство доступа по умолчанию на System.Collections.Generic.Stack `1 [[System.Int32, mscorlib, версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = b77a5c561934e089]], поскольку она наследуется от ICollection.

Разве я не должен сериализовать Stack<int>?

1 Ответ

8 голосов
/ 30 декабря 2008

Поскольку у класса Stack нет средства доступа по умолчанию (например, по индексу), его нельзя сериализовать этим методом.

Я бы предложил скопировать ваш стек в список, а затем сериализовать список.

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

Посмотрите, не сработает ли лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...