1

В проектах Visual Studio я часто использую частичные классы для извлечения определенных и единообразных данных, таких как запросы к базе данных или идентификаторы трассировки, из кода. Пример:

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 который содержит перечисление идентификаторов трассировки.

В обозревателе решений я хочу, чтобы эти файлы выглядели свернутыми. Например, GremlinsProvider.cs будет содержать GremlinsProvider.Queries.cs и GremlinsProvider.Trace.cs как и его дочерние элементы , так же, как Solution Explorer, сворачивает файлы конструктора или ресурсов в проекте Windows Forms.

Можно ли сделать это с помощью существующих решений (т.е. без необходимости писать собственное расширение), либо путем настройки Visual Studio 2010, либо через расширение?

1 ответ1

2

Я понятия не имею, какие побочные эффекты это может вызвать!

Из того, что я могу сказать, сворачивание берется из настройки DependentUpon в файле .csproj .

Как пример, запись для GremlinsProvider.Queries.cs должен выглядеть так:

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

Это может быть изменено в любое время в процессе разработки (нет необходимости создавать новый проект).

Если вам интересно, может ли это быть легче достигнуто с помощью IDE, кажется, что ответы - « Нет», но есть расширение, которое обещает сделать это: VSCommands (функция называется Group / Ungroup Items).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .