public static AcSharedStaticInfo FromFile([NotNull] MemoryMappedFile file) {
if (file == null) throw new ArgumentNullException(nameof(file));
using (var stream = file.CreateViewStream())
using (var reader = new BinaryReader(stream)) {
var size = Marshal.SizeOf(typeof(AcSharedStaticInfo));
var bytes = reader.ReadBytes(size);
var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned);
var data = (AcSharedStaticInfo)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(AcSharedStaticInfo));
handle.Free();
return data;
}
}
}