#c# #visual-studio #refactoring #automated-refactoring
#c# #visual-studio #рефакторинг #автоматизированный рефакторинг
Вопрос:
Я пытаюсь очистить / реорганизовать устаревшее решение на C # и поэтому изучаю варианты того, как определенные рефакторинги или быстрые действия могут быть применены ко всему решению.
Например, Visual Studio 2017 предлагает действия «Заменить xxx и xxx на property» и «Использовать автоматическое свойство», которые я могу применить с помощью значка лампочки для отдельных классов и методов / свойств.
Как я мог бы применить их ко всему приложению или полуавтоматически повторить все вхождения (более 300) и применить их? Я открыт для всех вариантов — командной строки, powershell, VBA, даже VISX-разработки. Я не хочу заново разрабатывать сам рефакторинг, и я не думаю, что простой find amp; replace тоже подойдет.
Ответ №1:
Когда появится окно быстрых действий, вы можете применить выбранное исправление к отдельному экземпляру или ко всему документу / проекту / решению:
Если вы применяете каждое указанное исправление к своему решению (или проекту), то вам потребуется обработать каждое предложение только один раз, поскольку первое, которое вы измените, будет применяться ко всем последующим экземплярам.
В качестве альтернативы вы могли бы использовать инструмент «Форматирование dotnet«, чтобы применить набор определенных правил форматирования к вашему проекту через командную строку, хотя это зависит от наличия у вас файла EditorConfig с определенными правилами.
Ответ №2:
Взгляните на EditorConfig
. То, что вы ищете, — это разделЯзыковые соглашения«, и вы можете пометить действие как молчащее (синоним рефакторинга в версии 15.8).:
# $slnRoot.editorconfig
[*.cs]
dotnet_style_prefer_auto_properties = true:silent
Затем, когда вы столкнетесь с этим действием в своем коде, вы можете применить быстрое действие ко всему вашему решению, файлу, проекту и т.д.
Примечание: в EditorConfig
VS2017 были некоторые ошибки. Мне пришлось закрыть решение и перезапустить IDE, чтобы иногда вносить изменения.