我正在尝试序列化如下类型:
public UsersPanel(UsersVM userVm)
{
var serialized = Serialize(userVm);
}
public static string Serialize(ViewModelBase instance)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
formatter.Serialize(stream, instance); // breaks here
return Convert.ToBase64String(stream.ToArray());
}
}
其中UsersVM
定义为
public class UsersVm : ViewModelBase {}
并ViewModelBase
定义为
[Serializable]
public class ViewModelBase {}
这给了我以下错误:
类型“UsersVM”未标记为可序列化。
如果我通过将对象userVm
传递给ViewModelBase
(标记为可序列化的)对象Serialize(ViewModelBase instance)
,它为什么告诉我这个?
我会认为在将其传递给方法时,传递UsersVM
将被基类型取代。ViewModelBase
ViewModelBase
如何序列化 ViewModelBase?