Библиотека использует внутреннюю структуру внутри себя для хранения некоторых данных конфигурации. Я пытаюсь изменить частное поле int в этой структуре с помощью UnsafeAccessorKind.Field.
Вот упрощенное воспроизведение настройки:
Код: Выделить всё
public struct GridPoint
{
private int _x;
public int X => _x;
public GridPoint(int x)
{
_x = x;
}
}
Код: Выделить всё
using System.Runtime.CompilerServices;
public class Program
{
[UnsafeAccessor(UnsafeAccessorKind.Field, Name = "_x")]
public extern static ref int GetX(GridPoint target);
public static void Main()
{
var p = new GridPoint(10);
// Try to update _x to 99
ref int xRef = ref GetX(p);
xRef = 99;
Console.WriteLine($"Expected: 99, Actual: {p.X}");
}
}
Ожидается: 99, фактическое: 10
Подробнее здесь: https://stackoverflow.com/questions/798 ... t-in-net-8
Мобильная версия