如何将内存映射文件视图反序列化为对象?

时间:2016-09-12 07:43:31

标签: c# file memory reflection

我正在寻找一种解析内存映射文件视图并将其内容保存在对象中的方法。基本上我要做的是读取二进制文件并将其保存在对象中。在C ++中,我只需使用 CreateFileMapping 创建文件映射,并使用 MapViewOfFile 映射文件视图,然后将视图转储到结构中(例如 IMAGE_DOS_HEADER )。有没有办法在C#中做到这一点?

        try
        {
            using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(path, FileMode.Open))
            {
                _mva = mmf.CreateViewAccessor(0, PeOffset.DosHeader);
                _mva.Read<MyType>(myTypeInstance);
                action?.Invoke(imageHeaders);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error opening file");
            _logger.Error(ex);
        }

提前致谢!

0 个答案:

没有答案