如何在ASP.Net Core中使用文件嵌套来嵌套接口

时间:2019-06-22 16:57:45

标签: visual-studio visual-studio-2019

我想在Visual Studio中使用Microsoft的自定义文件嵌套选项,以其“父”接口嵌套实现类文件,因此在此示例中,我希望ReportRepository.cs出现在嵌套在IReportRepository.cs下解决方案资源管理器。所有存储库都应该如此。

Files in Solution Explorer

我已经在解决方案的根目录中创建了.filenesting.json文件,但是我不知道如何使用它和documentation is very sparse

有人知道我如何在Visual Studio 2019中实现这一目标吗?

1 个答案:

答案 0 :(得分: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.csIInvestigationRepository.cs
  • IReporterRepository.DefaultImplementation.csIReporterRepository.cs

以此类推。

这也将使文件的目的更加明确,因为只有相同的名称并不能告诉您接口的作用,而仅仅是与接口有关。

如果您不希望在.中使用符号,而是希望使用-,则可以通过将"pathSegment"替换为"fileSuffixToExtension"并替换".DefaultImplementation.cs""-DefaultImplementation.cs"