Я заметил, что в моем решении вложение частичных классов работает только для проекта Microsoft.NET.Sdk.Web
.
Для остальных проектов (Microsoft.NET.Sdk
) не работает.
Кто-нибудь знает что-нибудь об этом?
Обновлено: я разместил SDK, потому что думаю, что это причина. Я создал новое решение, консольное приложение (Microsoft.NET.Sdk
) и попытался создать частичные классы, но файлы по-прежнему не вложены.
Редактировать 2
После добавления следующего в файл .csproj
он теперь вложен.
<ItemGroup>
<Compile Update = ".\Services\CatalogService.*.cs">
<DependentUpon>.\Services\CatalogService.cs</DependentUpon>
</Compile>
</ItemGroup>
Хотя вопрос все равно остается...
Вы смотрели документацию: learn.microsoft.com/en-us/visualstudio/ide/… ?
@Джимми Спасибо. Я, должно быть, как-то пропустил эту статью, хотя я искал...
Основываясь на документации, упомянутой Джимми в комментарии, я протестировал свой VS2022, и он работал хорошо. Во-первых, вложенные частичные классы работают как для Microsoft.NET.Sdk.Web
, так и для остальных проектов (Microsoft.NET.Sdk). Вы должны проверить File nesting options
в обозревателе решений. .
Вот несколько способов вложения файлов.
1, когда вы выбираете Default
, если для данного типа проекта не существует настроек, то файлы в проекте не вложены. Вы должны создать настройки для конкретного проекта через контекстное меню (контекстное меню) приложения консоли проекта (Microsoft.NET.Sdk). И использовать pathSegment
для установки правил:
Например
"pathSegment": {
"add": {
".*": [
".cs",
]
}
}
РЕЗУЛЬТАТ
pathSegment: Используйте этот тип правила, чтобы вложить Catelog.Paged.cs в Catelog.cs.
2 при выборе Web
: этот параметр применяет поведение вложения веб-файлов ко всем проектам в текущем решении.
3 настроить вложенность файлов для решения. Выберите Add Custom Setting
в обозревателе решений. Вы можете добавить столько пользовательских настроек вложенности файлов, сколько захотите. Это похоже на способ 1.
Это работает и для Microsoft.NET.Sdk, что продемонстрировано в проекте Winforms. Довольно волшебно, похоже, что это жестко закодировано для меня, управляемое содержимым файла project.csproj.user. Вероятность того, что вы сможете заставить его работать в консольном режиме, должна быть нулевой.