Возможно ли выводить в Solution Explorer классы из одного файла/неймспейса отдельно?

Ссылка скопирована
1 ответ

Добрый день!
Подскажите пожалуйста есть ли какая возможность объявлять классы в одном файле, но чтобы в обозревателе они отображались каждый отдельно? Что-то похожее есть с разделенными классами через нейминг: Class.PartName.cs и они красивенько отображаются.
Либо может можно как-то нативными средствами IDE выгрузить все классы из одного пространства имен в один большой файл cs?
Вообще мне нужно на основании этих классов создать классы/интерфейсы TypeScript и передать их дальше. Нашел решение, но по одному скармливать ему файлы/классы не очень хочется.

Дополнительно:

Вообще мне нужно на основании этих классов создать классы/интерфейсы TypeScript и передать их дальше.

А в чём проблема? Что за инструмент используешь?
Если это нужно для генерации http-клиента, то можешь какой-нибудь nswag взять - ему пофигу на файлы.

  • Василий Банников, у меня есть фронт на react/vite, хотелось бы как-то синхронизировать описания классов/моделей между ними.

    Сейчас пользуюсь плагином для VS "C# to TypeSctript": пока веду все классы в одном большом файле, потом через этот плагин конвертирую это в TypeScript. Подкладываю этот файл в src и все.
    Так изменения в классах на сервере должны быть видны и во время разработки фронта (через замену файла defaultExportClasses.ts, например). Думаю, что это поможет не ошибаться разработчикам фронта при взаимодействии с API - TS сразу будет ругаться, что что-то где-то не так.

    Не совсем понял, что подразумевается под "генерацией http-клиента".

  • V Sh.,

    Сейчас пользуюсь плагином для 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 и немного настроить, то думаю будет то, что надо...

  • так не годится?

    Возможно ли выводить в Solution Explorer классы из одного файла/неймспейса отдельно?

    • Очень даже годится! Спасибо, не знаю почему сам не нашел...
    • V Sh., кхм.. в обнимку с шарпом с 2000го... но все не сразу, и это то же чуть не методом тыка )))
      не боги горшки обжигали ;))
    • V Sh., с ходу не вспомню... но есть еще и режим просмотра всех классов, всех библиотек.. в тч до исходников... пользовал.. но вот с ходу не вспомню.. (((
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Андрей PHP Ответ

    Да, это возможно. В 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 отдельно, чтобы упростить навигацию и управление проектом.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно