C # десериализация с использованием sharpSerializer приводит к исключению - PullRequest
1 голос
/ 06 января 2011

Я сериализую список ObservableCollection<MyType>, используя эту строку кода, и она отлично работает:

var serializer = new SharpSerializer(true);
serializer.Serialize(myList, myStreamObject);

Проблема возникает, когда я пытаюсь десериализовать свои данные.

var serializer = new SharpSerializer(true);
this.items = (ObservableCollection<MyType>)serializer.Deserialize(
    myStreamObject);

Когда я отлаживаю, тип возврата serializer.Deserialize(myStreamObject):

System.Collections.ObjectModel.ObservableCollection`1[MyNameSpace.MyType]

В результате чего произошла ошибка типа? Как мне решить эту проблему? Что я делаю не так при десериализации?

Спасибо

1 Ответ

1 голос
/ 15 января 2011

Я не знаю, используете ли вы SharpSerializer для Silverlight или для полного .NET. По умолчанию SharpSerializer сериализует данные как короткое имя типа.Это может быть наиболее вероятной причиной вашей ошибки.Попробуйте сериализовать ваши данные как AssemblyFullQualifiedName:

var settings = new SharpSerializerBinarySettings();
settings.IncludeAssemblyVersionInTypeName = true;
settings.IncludeCultureInTypeName = true;
settings.IncludePublicKeyTokenInTypeName = true;

var serializer = new SharpSerializer(settings);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...