gpt4 book ai didi

c# - 在对象上使用 BinaryWriter

转载 作者:太空狗 更新时间:2023-10-30 00:21:12 26 4
gpt4 key购买 nike

我的应用程序是一个小型 C# 数据库,我正在使用 BinaryWriter 将数据库保存到一个文件中,该文件可以很好地处理 bool、uint32 等基本类型。
虽然我有一个 Object 类型的变量(允许用户存储任何数据类型),但是由于我的应用程序不知道(也不需要)这个变量的真实类型,我不确定如何使用 BinaryWriter 编写它。
有没有办法可以获取变量的内存并保存它?这样可靠吗?

编辑:

ba_friend 提供的答案有两个函数,用于将对象反序列化/序列化为字节数组,可以使用 BinaryWriter 写入字节数组及其长度。

最佳答案

您可以为此使用序列化,尤其是 BinaryFormatter 来获取 byte[]
注意:您要序列化的类型必须使用 [Serializable] 属性标记为Serializable

public static byte[] SerializeToBytes<T>(T item)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream())
{
formatter.Serialize(stream, item);
stream.Seek(0, SeekOrigin.Begin);
return stream.ToArray();
}
}

public static object DeserializeFromBytes(byte[] bytes)
{
var formatter = new BinaryFormatter();
using (var stream = new MemoryStream(bytes))
{
return formatter.Deserialize(stream);
}
}

关于c# - 在对象上使用 BinaryWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com