Я использую Devexpress Gridcontrol в своем приложении, которое развивается довольно быстрыми темпами, и это часто включает рефакторинг, изменение имен свойств и т. Д., Поскольку требования становятся более ясными / развивающимися.
Поскольку имена свойств жестко закодированы в строку в файле form.designer.cs
, это очень затрудняет их использование при рефакторинге.Я использую Resharper, и я знаю, что вы можете выбрать поле для поиска в строковых литералах, но когда текст Description
или Manufacturer
, это встречается сотни раз в несвязанных строковых литералах по всему моему проекту, так что реализация этого способа будетотнимает много времени и, откровенно говоря, трата времени.
Использование оператора nameof
обеспечивает мост между явным указанием имен полей, а также предоставляет встроенную поддержку для рефакторинга.
Возьмите этот фрагмент измой файл конструктора.
//
// colManufacturer
//
this.colManufacturer.Caption = "Manufacturer";
this.colManufacturer.ColumnEdit = this.xrefManufacturerSearch;
this.colManufacturer.FieldName = "Manufacturer";
this.colManufacturer.Name = "colManufacturer";
this.colManufacturer.Visible = true;
this.colManufacturer.VisibleIndex = 1;
Если я заменил атрибут FieldName
на
this.colManufacturer.FieldName = nameof(CrossRef.Manufacturer);
Но теперь я не могу открыть конструктор для этой формы, код ошибки 'Конструктор не может обработать неизвестноеname nameof
в строке 125. Код в методе InitializeComponent создается конструктором и не должен изменяться вручную.
Можно ли использовать выражения nameof для имен полей Devexpress?