在 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.cs
和GremlinsProvider.Trace.cs
作为其子项,就像解决方案资源管理器折叠 Windows 窗体项目中的设计器或资源文件一样。
可以做到吗现有的解决方案(即无需编写我自己的扩展),无论是通过配置 Visual Studio 2010 还是通过扩展?
答案1
我不知道这会引起什么副作用!
据我所知,折叠是根据文件DependentUpon
中的设置进行的.csproj
。
举例来说,的条目GremlinsProvider.Queries.cs
应如下所示:
<Compile Include="GremlinsProvider.Queries.cs">
<DependentUpon>GremlinsProvider.cs</DependentUpon>
</Compile>
这可以在开发过程中随时修改(无需创建新项目)。
如果你想知道是否可以通过 IDE 更轻松地实现这一点,答案似乎是没有但有一个扩展可以做到这一点:VS命令(该功能称为分组/取消分组项目)。