如果我想从一个二进制文件中填充一个结构体,我会使用类似这样的代码:
using (BinaryReader br = new BinaryReader(File.Open(filename, FileMode.Open)))
{
myStruct.ID = br.ReadSingle();
myStruct.name = br.ReadBytes(20);
}
然而,我必须先将整个文件读入字节数组再进行反序列化,因为我想要进行一些预处理。是否有任何托管的方法可以从字节数组中填充我的结构体,最好类似于上面的方法?
BinaryFormatter
可能是正确的选择。在游戏中的保存游戏是适合BinaryFormatter
的少数情况之一。 - CodesInChaosBinaryFormatter
的另一个重大问题是,您必须绝对信任该文件。创建该文件的人很可能能够在您的程序上下文中执行代码。 - CodesInChaos