如何使用现有的解决方案折叠 Visual Studio 2010 中的自定义文件?

如何使用现有的解决方案折叠 Visual Studio 2010 中的自定义文件?

在 Visual Studio 项目中,我经常使用部分类从代码中提取特定且统一的数据,例如数据库查询或跟踪 ID。示例:

public partial class GremlinsProvider
{
    public Mogwai GetAMogwai()
    {
        TraceEvent(TraceEventType.Start, TraceId.SearchForMogwai,
            "Querying the database for a Mogwai.");
        var mogwai = new DataQuery(Queries.FindMogwai).ReadRow<Mogwai>();

        TraceEvent(TraceEventType.Stop, TraceId.MogwaiFound, "Found a Mogwai.");
        return mogwai;
    }
}

public partial class GremlinsProvider
{
    private class Queries
    {
        public const FindMogwai = @"
            select top 1
            from [Gremlins]
            where [IsAvailable] = 1 and [PetName] = N'Mogwai'";
    }
}

public partial class GremlinsProvider
{
    private enum TraceId
    {
        SearchForMogwai,
        MogwaiFound,
    }
}

在本例中,我创建了三个文件:

  • GremlinsProvider.cs其中包含逻辑,
  • GremlinsProvider.Queries.cs其中包含带有数据库查询的常量字符串,
  • GremlinsProvider.Trace.cs其中包含跟踪 ID 的枚举。

在解决方案资源管理器中,我希望这些文件以折叠形式显示。例如,GremlinsProvider.cs将展开以包含GremlinsProvider.Queries.csGremlinsProvider.Trace.cs作为其子项,就像解决方案资源管理器折叠 Windows 窗体项目中的设计器或资源文件一样。

可以做到吗现有的解决方案(即无需编写我自己的扩展),无论是通过配置 Visual Studio 2010 还是通过扩展?

答案1

我不知道这会引起什么副作用!

据我所知,折叠是根据文件DependentUpon中的设置进行的.csproj

举例来说,的条目GremlinsProvider.Queries.cs应如下所示:

<Compile Include="GremlinsProvider.Queries.cs">
  <DependentUpon>GremlinsProvider.cs</DependentUpon>
</Compile>

这可以在开发过程中随时修改(无需创建新项目)。

如果你想知道是否可以通过 IDE 更轻松地实现这一点,答案似乎是没有但有一个扩展可以做到这一点:VS命令(该功能称为分组/取消分组项目)。

相关内容