У проектах 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
як його діти, так само, як Провідник рішень згортає файли дизайнера або ресурсів у проекті Windows Forms.
Чи можна це зробити з існуючими рішеннями (тобто без необхідності записування власного розширення), або шляхом налаштування Visual Studio 2010 або розширення?