Visual Studio: существует ли рефакторинг "переместить класс в другое пространство имен"?
Я делаю некоторую архитектурную очистку, которая включает в себя перемещение группы классов в разные проекты и/или пространства имен. В настоящее время я перемещаю файлы вручную, строю, а затем вручную добавляю С помощью Foo инструкции, необходимые для устранения ошибок компиляции. Кто-нибудь знает более умный способ сделать это? (Мы CodeRush и рефакторинг! магазин, но мне было бы интересно узнать, есть ли у Resharper поддержка для этого)
7 ответов:
Resharper-единственный инструмент, который я знаю о том, что имеет эту способность. Существует также много других функций, которые он имеет, что отсутствует в CodeRush и рефакторинг!
Visual Studio 2010 имеет возможность переименовать пространство имен. Наведите курсор на имя пространства имен и нажмите F2. Или просто переименуйте его в коде и нажмите Shift+ Alt+F10,введите после просмотра Красной закорючки появляются.
Reharper может также переименовать пространство имен. Цитата:
The Переименовать Пространство Имен рефакторинг позволяет пользователям переименовывать специфический пространство имен и автоматически исправить все ссылки на пространство имен в код. Следующие обычаи: переименован:
- операторы пространства имен
- С помощью директивы
- полные имена типов
этот ответ относится по крайней мере к Visual Studio 2013 и 2015 без resharper требуется
- переместить файлы классов в новую папку
- открыть 'найти и заменить'
- выберите "заменить в файлах"
- введите оригинал определение пространства имен в какой области например.
MyCorp.AppStuff.Api
- введите новая определение пространства имен в поле "заменить на", например.
MyCorp.AppStuff.Api.Extensions
- выберите новая папка с помощью кнопки обзора поля "Look in"..., или введите путь к папке
- нажать Заменить Все
есть частичные решения для VS 2015 и VS 2017 без Resharper С помощью бесплатного расширения.
одно расширение, которое мне нравится сегодня (конец 2017 года) составляет Исправить Пространство Имен расширение против : https://marketplace.visualstudio.com/items?itemName=vs-publisher-599079.FixNamespace#overview
он анализирует структуру папок вашего решения и предлагает рефакторинг имен, используя которые. К сожалению, это не идеально: это не так отслеживать зависимости, что хорошо, но решил львиную долю работы для меня.
С Resharper:CTRL+R+O
затем дважды нажмите клавишу со стрелкой вниз, чтобы выбрать Переместить Тип В Другое Пространство Имен.
поскольку ответ выше был предоставлен (я предполагаю), эта функция была добавлена в CodeRush. Просто поместите карат на тип для перемещения, и вы увидите переместить тип в пространство имен опция на Рефакторе! контекстное меню. Это приведет к перемещению типа в новое пространство имен и обновлению ссылок. Однако вы все равно можете переместить файл в папку решения, которая соответствует имени пространства имен.
Если вы не можете или не хотите использовать Re$harper,Блокнот++ - ваш друг:
- убедитесь, что у вас нет сохраненных изменений внутри Visual Studio для файлов, которые необходимо переместить в новое пространство имен
- открыть все файлы, содержащие пространство имен, которое необходимо изменить в Notepad++
- открыть Найти И Заменить (CTRL + H)
- заполните найти то, что и Заменить на поля
- пресс заменить все во всех открытых документах
- сохранить все изменения во всех документах (CTRL + SHIFT + S)
- переключиться на Visual Studio и перезагрузка все документы (да в командной строке)
сделал