Как создать библиотеку классов ASP.NET Core

Я хочу использовать инструменты Visual Studio для бритвенных страниц, компонентов, представлений и т. д. для проекта, над которым я работаю.

Сценарий следующий: я хочу иметь одно основное подключаемое веб-приложение, поэтому не должно быть прямой ссылки на плагины (которые являются библиотеками классов).

  • библиотека классов должна позволять использовать бритвенные страницы и т. д.
  • библиотека классов должна позволять отображать контроллеры (это уже работает)

Что я сделал до сих пор, так это изменил файл проекта и изменил SDK на Microsoft.NET.Sdk.Web

Вы можете воспроизвести эту проблему с помощью этой ссылки на GitHub.

Однако проект, который я изменил, теперь имеет «подключенные услуги» и launchSettings.json.

Могу ли я игнорировать это поведение или проект будет иметь побочные эффекты после внесения изменений?

введите здесь описание изображения


person Dbl    schedule 26.08.2019    source источник


Ответы (1)


То, что вы ищете (и что сделал переход на SDK), — это библиотека классов Razor, или сокращенно RCL. Похоже, вы могли начать с сайта ASP.NET Core, что объясняет наличие launchSettings.json. RCL похож на сайт ASP.NET Core в том смысле, что вы можете включать почти все то же самое: контроллеры, представления, страницы Razor, компоненты представлений, вспомогательные функции тегов, статические файлы и т. д. Однако, в частности, у вас не будет Program.cs , Startup.cs, launchSettings.json или любые файлы конфигурации, такие как appsettings.json. Это потому, что, в конце концов, это просто библиотека, а не что-то, что работает само по себе или стоит само по себе. Вы можете использовать стандартные абстракции, такие как IConfiguration/IOptions, ILogger и т. д., но фактическая их реализация будет исходить из вашего приложения, а не из библиотеки. Вам следует обратиться к документация для получения дополнительной информации.

person Chris Pratt    schedule 26.08.2019