Анализатор создает полностью скомпилированные компоненты Razor (в виде классов C#, которые наследуются от ComponentBase и реализуют BuildRenderTree).
Сгенерированные компоненты компилируются без ошибок, и на них можно ссылаться и использовать из Razor Pages или компонентов Blazor.
Однако:
Сгенерированный компонент ничего не отображает.
Никаких ошибок, никаких предупреждений, никаких исключений.
Он просто ведет себя как пустой компонент.
Если я скопирую точно такой же сгенерированный код C# в свой проект, как обычный .razor.cs, он работает отлично.
Таким образом, сгенерированный код верен, но что-то в его создании анализатором заставляет Blazor игнорировать его во время выполнения.
Пример сгенерированного компонента
Код: Выделить всё
public partial class AutoCountryForm : ComponentBase
{
[Parameter, EditorRequired]
public ItemDataSource? DataSource { get; set; }
protected override void BuildRenderTree(RenderTreeBuilder __builder0)
{
var seq = 0;
__builder0.OpenElement(seq++, "div");
__builder0.AddContent(seq++, "Hello from generated component");
__builder0.CloseElement();
}
}
Код: Выделить всё
Почему это происходит и как это исправить?
Подробнее здесь: https://stackoverflow.com/questions/798 ... y-a-roslyn
Мобильная версия