Возможно ли выводить в Solution Explorer классы из одного файла/неймспейса отдельно?
Добрый день!
Подскажите пожалуйста есть ли какая возможность объявлять классы в одном файле, но чтобы в обозревателе они отображались каждый отдельно? Что-то похожее есть с разделенными классами через нейминг: Class.PartName.cs и они красивенько отображаются.
Либо может можно как-то нативными средствами IDE выгрузить все классы из одного пространства имен в один большой файл cs?
Вообще мне нужно на основании этих классов создать классы/интерфейсы TypeScript и передать их дальше. Нашел решение, но по одному скармливать ему файлы/классы не очень хочется.
Дополнительно:
Вообще мне нужно на основании этих классов создать классы/интерфейсы TypeScript и передать их дальше.
А в чём проблема? Что за инструмент используешь?
Если это нужно для генерации http-клиента, то можешь какой-нибудь nswag взять - ему пофигу на файлы.
Сейчас пользуюсь плагином для VS "C# to TypeSctript": пока веду все классы в одном большом файле, потом через этот плагин конвертирую это в TypeScript. Подкладываю этот файл в src и все.
Так изменения в классах на сервере должны быть видны и во время разработки фронта (через замену файла defaultExportClasses.ts, например). Думаю, что это поможет не ошибаться разработчикам фронта при взаимодействии с API - TS сразу будет ругаться, что что-то где-то не так.
Не совсем понял, что подразумевается под "генерацией http-клиента".
Сейчас пользуюсь плагином для VS "C# to TypeSctript"
ой ой. Не стоит свой процесс разработки завязывать на какой-то плагин для среды разработки.
Не совсем понял, что подразумевается под "генерацией http-клиента".
Потому что http-клиент - это единственная причина, по которой есть смысл иметь объекты на фронте такие же, как и на бэке.
Расскажи, как ты используешь нагенерённые интерфейсы.
const users = [ { id: 1, name: "John Doe" }, { id: 2, name: "Jane Doe" ] |
const users = [ { id: 1, name: "John Doe" }, { id: 2, name: "Jane Doe" ]
Ну и получается, что на бэке есть класс:
public class User { [Required] public Guid Id {get;set;} = null!; public string Name {get;set;} = String.Empty; } |
public class User { [Required] public Guid Id {get;set;} = null!; public string Name {get;set;} = String.Empty; }
На фронте нужно для описания иметь что-то похожее:
export interface User { id: string; name?: string; } |
export interface User { id: string; name?: string; }
Это утрировано, там еще через автомаппер я отсекаю ненужные поля в DTO (Details, Creating, Editing, etc...)
Нашел инструмент swagger-typescript-api. Если его натравить на эндпоинт ./swagger.json и немного настроить, то думаю будет то, что надо...
так не годится?
- Очень даже годится! Спасибо, не знаю почему сам не нашел...
- V Sh., кхм.. в обнимку с шарпом с 2000го... но все не сразу, и это то же чуть не методом тыка )))
не боги горшки обжигали ;)) - V Sh., с ходу не вспомню... но есть еще и режим просмотра всех классов, всех библиотек.. в тч до исходников... пользовал.. но вот с ходу не вспомню.. (((
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, это возможно. В Visual Studio есть возможность организовать классы из одного файла или неймспейса в Solution Explorer отдельно. Для этого нужно воспользоваться функциональностью "Nested Folders" или "Solution Folders".
1. Nested Folders:
- Создайте новую папку в Solution Explorer, нажав правой кнопкой мыши на проекте и выбрав "Add" -> "New Folder".
- Переименуйте папку, чтобы соответствовала названию вашего файла или неймспейса.
- Перетащите все классы, относящиеся к этому файлу или неймспейсу, в созданную папку.
- Теперь у вас будет отдельная папка с классами из одного файла или неймспейса.
2. Solution Folders:
- Альтернативный способ - использовать Solution Folders.
- Щелкните правой кнопкой мыши на решении в Solution Explorer и выберите "Add" -> "New Solution Folder".
- Переименуйте папку, чтобы соответствовала вашему файлу или неймспейсу.
- Перетащите все файлы с классами в созданную Solution Folder.
- Теперь у вас будет отдельная папка с классами из одного файла или неймспейса на уровне решения.
Таким образом, вы можете организовать классы из одного файла или неймспейса в Solution Explorer отдельно, чтобы упростить навигацию и управление проектом.