Сгенерированные компоненты Blazor компилируются, но ничего не визуализируются при создании анализатором Roslyn.C#

Место общения программистов C#
Anonymous
Сгенерированные компоненты Blazor компилируются, но ничего не визуализируются при создании анализатором Roslyn.

Сообщение Anonymous »

Я создаю компоненты Blazor с помощью специального анализатора Roslyn.

Анализатор создает полностью скомпилированные компоненты 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();
}
}
Использование на странице Razor Проект собирается успешно, но выходные данные совершенно пусты.

Почему это происходит и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/798 ... y-a-roslyn

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