Атрибут резервного свойства в первичном конструкторе класса
Как добавить атрибут в свойство поддержки, созданное компилятором, для параметра в первичном конструкторе класса C# 12?
Я пытался:
class C([field: JsonIgnore] int X) {
int F() => X +1;
}
Но я получаю предупреждение
предупреждение CS0657: «поле» не является допустимым местоположением атрибута для этого объявления. Допустимые местоположения атрибутов для этого объявления — «param». Все атрибуты в этом блоке будут игнорироваться.
И атрибут игнорируется, то же самое для[property: JsonIgnore]
.
(использование [param: ..] помещает атрибут в параметр ctor, а это не то, что мне нужно)
(также обратите внимание, что я пытаюсь избежать явного определения поля в классе)
Обратите внимание, что я могу добиться почти того же самого с записями, см.