有没有办法在 blazor 中查看 razor 文件的 RenderTreeBuilder 版本?
Is there a way to see the RenderTreeBuilder version of the razor file in blazor?
以索引页为例:
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
据我了解,这将使用 RenderTreeBuilder 翻译成一些代码,可能看起来像这样:
builder.OpenElement(0, "h1")
builder.AddContent(1, "Hello, world!")
.
.
.
有没有地方可以检查 Razor 页面的 RenderTreeBuilder 版本?
我想开始尝试 RenderTreeBuilder 并想知道它是如何完成的,以供参考。
如果重复,请提前致歉。如果是这样我会删除这个问题。
谢谢!
你是对的。 BlazorMarkup 被翻译成使用 RenderTreeBuilder 的 C# 文件。它与 WPF 在处理 XAML 和 C# 文件时所做的相当。
构建项目后,转到 obj/debug/net5.0/Razor/
。
请记住使用调试版本。否则,您将看不到这些文件。
您将看到与项目中相同的目录结构。只要目录包含 razor 文件,就会列出这些目录。打开文件,例如 Index.razor.g.cs(.g 代表生成),您可以看到对 RenderTreeBuilder
的调用
[Microsoft.AspNetCore.Components.RouteAttribute("/")]
public partial class Index : Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.AddMarkupContent(0, "<h1>Hello, world!</h1>\r\n\r\nWelcome to your new app.\r\n\r\n");
__builder.OpenComponent<BlazorApp1.Shared.SurveyPrompt>(1);
__builder.AddAttribute(2, "Title", "How is Blazor working for you?");
__builder.CloseComponent();
}
#pragma warning restore 1998
}
以索引页为例:
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
据我了解,这将使用 RenderTreeBuilder 翻译成一些代码,可能看起来像这样:
builder.OpenElement(0, "h1")
builder.AddContent(1, "Hello, world!")
.
.
.
有没有地方可以检查 Razor 页面的 RenderTreeBuilder 版本? 我想开始尝试 RenderTreeBuilder 并想知道它是如何完成的,以供参考。
如果重复,请提前致歉。如果是这样我会删除这个问题。
谢谢!
你是对的。 BlazorMarkup 被翻译成使用 RenderTreeBuilder 的 C# 文件。它与 WPF 在处理 XAML 和 C# 文件时所做的相当。
构建项目后,转到 obj/debug/net5.0/Razor/
。
请记住使用调试版本。否则,您将看不到这些文件。
您将看到与项目中相同的目录结构。只要目录包含 razor 文件,就会列出这些目录。打开文件,例如 Index.razor.g.cs(.g 代表生成),您可以看到对 RenderTreeBuilder
[Microsoft.AspNetCore.Components.RouteAttribute("/")]
public partial class Index : Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.AddMarkupContent(0, "<h1>Hello, world!</h1>\r\n\r\nWelcome to your new app.\r\n\r\n");
__builder.OpenComponent<BlazorApp1.Shared.SurveyPrompt>(1);
__builder.AddAttribute(2, "Title", "How is Blazor working for you?");
__builder.CloseComponent();
}
#pragma warning restore 1998
}