Определение наличия в сборке страниц или компонентов RazorC#

Место общения программистов C#
Ответить
Anonymous
 Определение наличия в сборке страниц или компонентов Razor

Сообщение Anonymous »

У меня есть архитектура плагина, в которой я использую метод app.MapRazorComponents().AddAdditionalAssemblies() для добавления сборок плагина к сопоставлению страниц Razor.
Плагины не гарантированно включают какие-либо страницы, поэтому я хочу добавлять только сборки, содержащие файлы с директивой @page.
Я провел некоторую отладку и обнаружил, что классы, созданные для файлов .razor, имеют установленный [Microsoft.AspNetCore.Components.RouteAttribute], поэтому я предполагаю, что директива @page преобразуется в [Route].
Атрибут [Route], однако, также можно использовать на контроллерах, которые добавляются по-другому (

Код: Выделить всё

.MapControllers()
), поэтому использовать только этот атрибут в качестве маркера недостаточно.
Вероятно, я мог бы исключить типы, которые также имеют атрибут [ApiController], или добавить проверки для еще большего количества атрибутов (или наследования), но я чувствую, что это может быстро выйти из-под контроля.
Это в .NET 8 с использованием шаблона веб-приложения Blazor с режимом рендеринга сервера.
Есть ли способ проверить, содержит ли сборка какие-либо файлы .razor (будь то страницы или компоненты), или, альтернативно, проверить, является ли сборка «библиотекой классов Razor» или нет просто «Библиотека классов»?

Подробнее здесь: https://stackoverflow.com/questions/788 ... components
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»