首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在对象上使用BinaryWriter

在对象上使用BinaryWriter
EN

Stack Overflow用户
提问于 2011-07-20 09:18:36
回答 1查看 10.5K关注 0票数 5

我的应用程序是一个小型C#数据库,我使用BinaryWriter将数据库保存到一个文件中,该文件可以很好地处理基本类型,如bool、uint32等。

虽然我有一个Object类型的变量(允许用户存储任何数据类型),但是由于我的应用程序不知道这个变量的真正类型,所以我不确定如何使用BinaryWriter编写它。

有什么方法可以让我抓住这个变量的内存并保存它吗?那可靠吗?

编辑:

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 09:55:39

您可以为此使用序列化,特别是BinaryFormatter来获取byte[]

备注:您正在序列化的类型必须标记为具有[Serializable]属性的可序列化

代码语言:javascript
复制
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();
    }
}

代码语言:javascript
复制
public static object DeserializeFromBytes(byte[] bytes)
{
    var formatter = new BinaryFormatter();
    using (var stream = new MemoryStream(bytes))
    {
        return formatter.Deserialize(stream);
    }
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6759604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档