【发布时间】:2017-05-04 01:58:15
【问题描述】:
好的,在 C++ 中,我可以创建一个包含一堆值类型的 struct 对象,并在需要时在单个写入语句中将其写入二进制文件,如下所示:
struct DataFileHeader {
unsigned short Id;
unsigned short Type;
unsigned int Count;
unsigned int Offset;
};
...
struct DataFileHeader dataFileHeader;
...
rc = _write(fileHandle, &dataFileHeader, 12);
有没有办法在c#中做到这一点?我已经将我的结构转换为 c# 中的类,并且正在使用 BinaryFormatter 并尝试序列化对象,但这会向流中添加一堆文本和其他内容。我只想写出对象中的所有值字段。这是可能的还是我必须分别写出对象上的每个字段?
【问题讨论】:
-
编写自己的二进制 BinaryFormatter 并不难。
-
为什么不使用现有的 BinaryFormatter
-
@ilansch,因为它在流中填充了大量“文本”。诸如 DLL 名称、版本、文化、字段名称之类的内容。它返回 169 而不是 12 个字节。
标签: c# c++ binaryfiles binary-data