C#将类对象写入二进制文件
C# write class object to binary file in one step
好,在C 中,我可以创建一个结构对象,其中包含一堆值类型,并且在需要时,将其写入单个写入语句中的二进制文件:
struct DataFileHeader {
unsigned short Id;
unsigned short Type;
unsigned int Count;
unsigned int Offset;
};
...
struct DataFileHeader dataFileHeader;
...
rc = _write(fileHandle, &dataFileHeader, 12);
有什么办法在C#中做到这一点?我已经将结构转换为C#中的类,并正在与二进制形式合作,并试图序列化对象,但在流中添加了一堆文本和其他内容。我只想写出对象中的所有值字段。这是可能的还是我必须分开对象上的每个字段?
void Main()
{
var fileHeader = new DataFileHeader()
{
Count = 10,
Id = 10,
Offset = 10,
Type = 10
};
Serialize(fileHeader).Dump();
}
// Define other methods and classes here
public byte[] Serialize<TObject>(TObject obj)
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
byte[] ret = null;
using (MemoryStream ms = new MemoryStream())
{
binaryFormatter.Serialize(ms, obj);
ret = ms.ToArray();
}
return ret;
}
[Serializable]
public struct DataFileHeader
{
public short Id;
public short Type;
public int Count;
public int Offset;
};
如果那不起作用,我认为单独这样做可能是唯一的方法。
BitConverter.GetBytes(fileHeader.Count).Concat(BitConverter.GetBytes(fileHeader.Count)).Concat(BitConverter.GetBytes(fileHeader.Count)).Concat(BitConverter.GetBytes(fileHeader.Count)).Dump();
相关文章:
- 对在不同二进制文件中创建的对象文件的依赖关系
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 使用此指针在 c++ 中将对象写入二进制文件
- 将对象信息保存到二进制文件中
- 如何使用自定义对象的序列化在 c++ 中编写自定义二进制文件处理程序
- C#将类对象写入二进制文件
- C++/Python 中对象和结构的二进制文件结构
- 将对象(指针)在地图中输出到二进制文件
- 未显式引用对象的全局对象构造函数在最终二进制文件 - LD 中被丢弃
- 使用 C++ 将对象读取和写入二进制文件
- 正在从二进制文件中读取对象列表
- C++ - 如何编写和读取包含对象的结构?(写入和读取二进制文件)
- C++ 将对象写入二进制文件
- 将二进制文件的一部分读入预先存在的basic_string对象
- 如何像二进制文件一样读取提升mapped_region对象
- CMake:从外部项目链接共享C++对象会生成具有相对路径的二进制文件,而不是绝对路径
- c++这个将对象写入二进制文件
- c++将对象写入和读取到二进制文件中
- 将二进制文件用于复杂对象C++
- 将对象数组写入和读取到二进制文件