Как правильно изменить имя компонента Blazor (файла razor)

У меня есть проблема, которая меня немного раздражает: допустим, у меня есть компонент Blazor MyCustomComponent.razor, который находится в ProjectName.Client.Shared. Теперь я могу использовать это в своем коде вот так:

<MyCustomComponent></MyCustomComponent>.

Но как только я переименую этот компонент, щелкнув правой кнопкой мыши MyCustomComponent.razor, например, на MyFirstCustomComponent.razor, в IntelliSense все равно появится только старое имя компонента, а новое не распознается. Появляется это сообщение об ошибке:

Обнаружен элемент разметки с неожиданным именем MyFirstCustomComponent.razor. Если это должен быть компонент, добавьте директиву @using для его пространства имен.

Даже если я сделаю полную перестройку, ничего не произойдет.

Мое текущее решение - удалить старый компонент и создать новый компонент с новым именем, но, на мой взгляд, это не лучший способ сделать это.

Есть ли место, где мне также нужно изменить старое имя на новое в каком-то другом файле? После переименования я не смог найти в моем коде какое-либо появление старого имени компонента, но каким-то образом его можно было выбрать из IntelliSense ...


person devbf    schedule 04.09.2020    source источник
comment
У вас есть два варианта. Поместите @namespace ProjectName в компонент или добавьте using в _imports.razor. Мне также иногда приходится выгружать / перезагружать проект, чтобы IntelliSense уловил изменения, если я переименую файл .razor.   -  person Brian Parker    schedule 04.09.2020
comment
У меня точно такая же проблема. Для меня у меня есть оператор using в _imports.razor, я пытался добавить импорт в тот же файл, не имеет значения.   -  person Cedervall    schedule 01.02.2021


Ответы (2)


Похоже, база данных Intellisense повреждена. Проще всего его восстановить.

Вот что я делаю:

  1. Закройте решение и выйдите из Visual Studio
  2. Удалите файл * .suo в папке .vs
  3. Перезапустите Visual Studio и снова откройте решение.

База данных Intellisense будет перестроена.

person Gary Chan    schedule 05.09.2020
comment
Но делать это каждый раз после переименования файла бритвы тоже не очень удобно. - person devbf; 05.09.2020

Моя визуальная студия также делает это, однако обычно после закрытия всех затронутых файлов из окна редактирования intellisense догоняет. Иногда это занимает несколько минут, я просто продолжаю работать, пока он не исчезнет. Может быть, попробуйте перестроить кеш, чтобы в дальнейшем он работал нормально?

person Wesley King    schedule 12.09.2020