如何将MemorySteam设置为当前对象
本文关键字:对象 设置 MemorySteam | 更新日期: 2023-09-27 18:14:09
我正在编写一个c#应用程序,并且有一个关于如何将MemoryStream
设置为当前对象的问题。
我想有一个函数调用,对于一个对象,复制对象的数据而不返回对象,并选择为此使用序列化。
这是我要复制的对象中的函数:
public void CopyTest()
{
MemoryStream stream = SerializeService.SerializeToStream(this);
this = SerializeService.DeserializeFromStream(stream);
}
下面是我的SerializeToStream
函数:
public static MemoryStream SerializeToStream(object o)
{
MemoryStream stream = new MemoryStream();
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, o);
return stream;
}
下面是我得到的错误:
不能赋值给'
<this>
',因为它是只读的
您不能重新分配this
,它是当前实例。你可以让你的方法返回一个副本。你可以用那份拷贝做任何你想做的事。我认为它应该看起来更像:
public bool CopyTest()
{
return this == Copy();
}
public object Copy()
{
return SerializeService.DeserializeFromStream(SerializeService.SerializeToStream(this));
}