У меня есть проект WinForm, который содержит форму под названием MainUI. Вы видите, что автоматически сгенерированный частичный класс обнаруживается как узел под MainUI.cs
. Есть ли способ "переместиться", мой сам создал частичный класс MainUI.Other.cs
под MainUI.cs
так, чтобы это показало другим узлом?
Закройте решение в Visual Studio и откройте файл .csproj в текстовом редакторе. Найдите MainUI.Other.cs и добавьте следующий элемент XML:
<Compile Include="MainUI.Other.cs">
<SubType>Form</SubType>
<DependentUpon>MainUI.cs</DependentUpon> <!-- this is the magic incantation -->
</Compile>
Снова откройте решение в Visual Studio и наслаждайтесь субузловым совершенством.
Тем не менее, вы можете пересмотреть, является ли это хорошей идеей. Причина, по которой файл .designer.cs отображается как подузел, заключается в том, что вам обычно не нужно или не нужно его открывать, поскольку он содержит сгенерированный код, который вы обычно просматриваете или редактируете с помощью дизайнера. В то время как файл частичного класса будет содержать ваш код, который вы захотите отредактировать и просмотреть; Если файл не виден в обозревателе решений, это может сбить с толку специалистов по обслуживанию. Однако только вы можете знать, что подходит для вашего проекта - просто помните!
Вы можете изменить исходный файл проекта, чтобы сгруппировать связанные файлы. В исходном файле проекта найдите элемент ItemGroup, содержащий MainUI.cs, и добавьте запись для MainUI.Others.cs
Здесь сообщение в блоге, в котором подробно показано, как это сделать. Сгруппировать / вложить файлы исходного кода
Да, это возможно, но вам придется вручную отредактировать файл проекта.
В файле проекта (откройте его в редакторе XML) найдите группу элементов списка файлов. В моем примере я оставил форму как «Form1.cs». Добавьте дочерний элемент «
к вашему расширенному классу, как показано в примере ниже:
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Form1.Designer.Other.cs">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Form</SubType>
</Compile>
Хотя обычно вы не хотите, чтобы какой-либо несгенерированный код был скрыт как дочерний узел. Моя обычная практика - создать в проекте папку под названием «Частичные классы» и добавить их все в одном месте.