Сгенерированные компоненты 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
Ответить

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

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

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

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

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