Изменить пространство имен по умолчанию при создании класса в папке (Visual Studio) - PullRequest
44 голосов
/ 23 августа 2009

Как я могу изменить пространство имен по умолчанию, используемое при создании нового класса в Visual Studio?

Справочная информация. У моего решения есть проект MyCompany.MyProject.Domain, в котором у меня есть папка «Model Base (Linq)» с подпапкой «Extensions», в которой хранятся все частичные расширения класса.

MyCompany.MyProject.Domain
   + Model Base (Linq)
        + Extensions
           - Order.cs
           - Trace.cs 

Когда я создаю там новый файл .cs, для пространства имен устанавливается MyCompany.MyProject.Domain.Model_Base \ _ \ _ Linq \ _ \ _. Расширения, я хочу, чтобы это был только MyCompany.MyProject.Domain.Model. хотя.

Как я могу изменить это поведение по умолчанию?

Ответы [ 5 ]

41 голосов
/ 23 августа 2009

Здесь есть 4 школы мысли:

  • отредактируйте его вручную
  • жить с этим
  • изменить шаблон класса (или экспортировать шаблон второго класса)
  • создайте файл вне подкаталога, затем перетащите его в

Я склонен использовать 4-й; это быстрее, чем редактирование, и меньше хлопот, чем смена шаблонов

8 голосов
/ 23 августа 2009

Чтобы изменить пространство имен по умолчанию:

Щелкните правой кнопкой мыши по проекту, перейдите в свойства и на вкладке «Приложение» есть поле «Пространство имен по умолчанию».

Обратите внимание, что это не отвечает на ваш точный вопрос, это зависит от вашей папки. По сути, вам нужно переименовать эту папку в «Модель».

4 голосов
/ 29 апреля 2016

Если у вас установлен ReSharper, щелкните правой кнопкой мыши папку в вашем решении, которую хотите исключить из пространств имен, и выберите свойства. На панели свойств выберите False для Поставщик пространства имен , и это заставит Visual Studio игнорировать папку при создании пространств имен в новых файлах.

Visual Studio solution folder properties pane.

1 голос
/ 03 февраля 2018

Resharper изменил, как они это делают (по состоянию на VS2017).

  1. Добавьте вашу папку.
  2. Добавьте свой первый класс.
  3. Вручную измените пространство имен так, как вам нужно. (Обычно это удаляет последний фрагмент из пространства имен, представляющего папку, в которой находится класс.)
  4. Пространство имен теперь будет подчеркнуто, чтобы сказать, что оно не соответствует структуре папки. Нажмите на опции, чтобы исправить это, и выберите «Папка» ... «не вводить пространство имен».

Теперь ваша папка настроена на ожидание пространства имен для всех новых классов. Однако, когда вы добавляете новый класс в папку, он теперь жалуется, что это не пространство имен, которое вы установили на шаге 3 выше.

Итак, вам все еще нужно вручную изменить пространство имен, но, по крайней мере, resharper больше не пытается сражаться с вами.

0 голосов
/ 31 марта 2019

Если у вас уже есть один класс в этой папке с нужным пространством имен. Вы можете воспользоваться предложением Move type to ClassName.cs лампочки.

Например, вы создали Order.cs с правильным пространством имен MyCompany.MyProject.Domain.Model в папке Extensions. Если вы хотите добавить Trace класс, вы делаете это так:

enter image description here

Ctrl + ., когда курсор редактирования находится где-нибудь вокруг class Trace слов, покажет предложение.

так ... Ctrl + . Down Down Enter

Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...