Как вложить интерфейсы, используя вложение файлов в ASP.Net Core - PullRequest
1 голос
/ 22 июня 2019

Я хочу использовать пользовательскую опцию вложенности файлов Microsoft в Visual Studio для вложения файлов классов реализации с их «родительскими» интерфейсами, поэтому в этом примере я бы хотел, чтобы ReportRepository.cs отображался как вложенный под IReportRepository.cs в обозревателе решений.То же самое должно быть для всех репозиториев.

Files in Solution Explorer

Я создал файл .filenesting.json в корне решения, но я не знаю, как его использовать и документация очень скудная .

Кто-нибудь знает, как мне этого добиться в Visual Studio 2019?

1 Ответ

2 голосов
/ 22 июня 2019

Насколько я могу собрать, невозможно сгруппировать по префиксам. Вы можете группировать только по расширениям или суффиксам, или по полному имени файла.

Это означает, что вы не можете определить правило для этого. Однако есть 2 варианта:

  • Определить правило для каждого файла
  • Измените схему именования

Определение правила для каждого файла

Чтобы определить правило для каждого файла, вы должны использовать провайдера fileToFile. Это будет выглядеть так:

{
  "help": "https://go.microsoft.com/fwlink/?linkid=866610",
  "root": true,

  "dependentFileProviders": {
    "add": {
      "fileToFile": {
        "add": {
          "IInvestigationRepository.cs": [ // Parent file
            "InvestigationRepository.cs"   // Nested file
          ],
          "IReporterRepository.cs": [ // Parent file
            "ReporterRepository.cs"   // Nested file
          ]
          ...
        }
      }
    }
  }
}

Использование другой схемы именования

В качестве альтернативы, если вам не нравится первый вариант, вы можете использовать другую схему именования для ваших файлов и позволить классам сохранять свои старые имена.

Тогда вы можете использовать провайдера fileSuffixToExtension, например:

{
  "help": "https://go.microsoft.com/fwlink/?linkid=866610",
  "root": true,

  "dependentFileProviders": {
    "add": {
      "pathSegment": {
        "add": {
          ".DefaultImplementation.cs": [
            ".cs"
          ]
        }
      }
    }
  }
}

Это будет карта

  • IInvestigationRepository.DefaultImplementation.cs до IInvestigationRepository.cs,
  • IReporterRepository.DefaultImplementation.cs до IReporterRepository.cs

и т. Д.

Это также сделает цель ваших файлов более понятной, поскольку одноименное имя не скажет вам, что он делает с Интерфейсом, просто это как-то связано с ним.

Если вы не хотите использовать нотацию с . и предпочитаете использовать -, вы можете сделать это, заменив "pathSegment" на "fileSuffixToExtension" и заменив ".DefaultImplementation.cs" на "-DefaultImplementation.cs"

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