It seems unmanaged struct always serialize all data as-is.
[MemoryPackable]
public partial struct MyUnmanagedStruct
{
[MemoryPackIgnore]
public int Value1;
public int Value2;
}
public class MyTest {
[Fact]
public void IgnoredField_ShouldNotBeSerialized()
{
// Arrange
var data = new MyUnmanagedStruct() { Value1 = 1, Value2 = 2 };
var bytes = MemoryPackSerializer.Serialize(data);
// Act
var deserialized = MemoryPackSerializer.Deserialize<MyUnmanagedStruct>(bytes);
// Assert
Assert.Equal(0, deserialized.Value1); // failed here
Assert.Equal(data.Value2, deserialized.Value2);
}
}
It seems unmanaged struct always serialize all data as-is.