我正在使用这行代码序列化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]
从而导致类型错误?我该如何解决这个问题?反序列化时我做错了什么?
由于
答案 0 :(得分:1)
我不知道你是使用SharpSerializer
用于Silverlight还是用于完整的.NET
默认情况下,SharpSerializer
将数据序列化为短类型名称。这可能是您错误的最可能原因。尝试将您的数据序列化为AssemblyFullQualifiedName
:
var settings = new SharpSerializerBinarySettings();
settings.IncludeAssemblyVersionInTypeName = true;
settings.IncludeCultureInTypeName = true;
settings.IncludePublicKeyTokenInTypeName = true;
var serializer = new SharpSerializer(settings);