У меня есть библиотека компонентов Blazor, которая содержит несколько классов и компонентов Blazor.
Я пытаюсь сослаться на компонент Blazor из обычного класса C#, но у меня возникают странности.
Если я ссылаюсь на него там, где я ожидаю, все компилируется и работает нормально.
ModalDialogResult result = await ShowDialogAsync<LiquidTechnologies.Blazor.ModalDialog.Components.MessageBoxForm>(title, options, parameters);
Но он сообщает об ошибке intellisense
CS0234 Имя типа или пространства имен «MessageBoxForm» не существует в пространстве имен «LiquidTechnologies.Blazor.ModalDialog.Components» (вам не хватает ссылки на сборку?)
Его также не удалось собрать в среде непрерывной интеграции GitHub (с той же ошибкой intellisense).
Если я использую имя класса, которое находит intellisense (__generated__MessageBoxForm), я не могу создать его в Visual Studio 2019.
Арррррр...
Проект находится на GitHub по адресу blazor-modal-dialog. Проблема заключается в файле blazor-modal-dialog/src/LiquidTechnologies.Blazor.ModalDialog/Services/ModalDialogService.cs
Похоже на https://github.com/aspnet/AspNetCore/issues/12446.
2 ответа
Когда вы перемещаете или переименовываете компонент, в Blazor возникает ошибка (очень раздражающая), которая все еще не устранена на момент написания этой статьи. Чтобы решить, в первую очередь попробуйте очистить решение и выполнить перестроение решения (сборки недостаточно, перестроение обязательно). Иногда вам также потребуется вручную удалить папки obj и bin проекта Blazor перед перестроением решения, и в качестве последней попытки попробуйте закрыть и перезапустить Visual Studio, а затем перестроить решение. Это должно решить проблему. В противном случае может быть какая-то другая причина, например, вы что-то пишете с ошибкой или опускаете использование пространства имен.
Похоже, вам нужно указать пространство имен в компоненте MessageBoxForm
@namespace LiquidTechnologies.Blazor.ModalDialog.Components
И импортируйте его в ModalDialogService
using LiquidTechnologies.Blazor.ModalDialog.Components;
Похожие вопросы
Новые вопросы
blazor
Blazor позволяет создавать интерактивные веб-интерфейсы с использованием C # вместо JavaScript. Это функция ASP.NET, среды веб-разработки от Microsoft, которая расширяет платформу разработчика .NET.
Components
?runs-on: windows-latest
в YAML. См. github.com/aspnet/AspNetCore/issues/15069.