【发布时间】:2015-07-07 04:23:51
【问题描述】:
假设我们有两个游标文件,它们被加载到 c# 对象中:
using (var ms = new MemoryStream(Resource.file1))
_cursor1 = new System.Windows.Input.Cursor(ms);
using (var ms = new MemoryStream(Resource.file2))
_cursor2 = new System.Windows.Input.Cursor(ms);
我想比较这些对象是有原因的(例如,假设file1 可以是file2 的副本,我想检测它)。我有一个方法试图将对象反序列化为字节数组,以便最终比较这些数组:
public static byte[] ToByteArray(this object obj)
{
var bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
不幸的是用法引发了序列化错误:
var equal = _cursor1.ToByteArray().SequenceEqual(_cursor2.ToByteArray());
附加信息:在程序集中键入“System.Windows.Input.Cursor” 'PresentationCore,版本=4.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 未标记为可序列化。
比较这些对象的方法是什么?
【问题讨论】:
-
使用不同的序列化程序?
-
@CodesInChaos:你能详细说明一下吗?
标签: c# .net wpf serialization