C# 我可以将对象保存到磁盘而不进行序列化吗?

C# 我可以将对象保存到磁盘而不进行序列化吗?,c#,.net,C#,.net,我想知道是否可以将某个类的实例保存到磁盘上的文件中,然后在不进行序列化的情况下进行恢复。例如,将实例转换为字节数组,然后保存到FileStream或其他文件中。老实说,我是这样问的,因为我不完全理解如果我们可以将对象保存到文件中而不使用序列化,为什么我们需要序列化?正如序列化所说:在计算中,序列化(或序列化)是将数据结构或对象状态转换为可以存储的格式的过程(例如,在文件或内存缓冲区中)或传输(例如,通过网络连接链路)并随后重建(可能在不同的计算机环境中) 答案是否定的,因为序列化的定义。您需要读

我想知道是否可以将某个类的实例保存到磁盘上的文件中,然后在不进行序列化的情况下进行恢复。例如,将实例转换为字节数组,然后保存到FileStream或其他文件中。老实说,我是这样问的,因为我不完全理解如果我们可以将对象保存到文件中而不使用序列化,为什么我们需要序列化?

正如序列化所说:在计算中,序列化(或序列化)是将数据结构或对象状态转换为可以存储的格式的过程(例如,在文件或内存缓冲区中)或传输(例如,通过网络连接链路)并随后重建(可能在不同的计算机环境中)


答案是否定的,因为序列化的定义。

您需要读回这个对象吗?如果需要,您如何知道应该创建哪种类型的实例?在C中,如果您的结构中没有指针,您可以这样做。在C中,一切都是指针,所以是的,您可以将对象写入磁盘,但这只对值类型有意义。如果将其他对象写入磁盘程序结束后,您只需写入无意义的指针值。将对象转换为可存储或传输的数据结构实际上就是序列化的定义,因此您的问题归结为“我可以在不序列化的情况下进行序列化吗?”。您是否希望避免某些特定形式的序列化?(如人类可读的json/xml/etc)@Knoop,有点。我更感兴趣的是类似于byte[]arr=(byte[])的内容对象,然后将这些字节放入FileStream可以取代序列化技术。@Denysalexiev,即使您将其转换为字节数组并存储它,它仍然称为序列化。这意味着有许多不同的格式可以序列化,这些格式还包括二进制选项。虽然我没有使用过它,但myself我建议你看看谷歌的protobuf: