【发布时间】:2020-09-10 03:07:21
【问题描述】:
考虑一个简单的 blazor 组件 MyText
<p>@Title</p>
public partial class MyText
{
[Parameter] public string Title { get; set; }
}
在页面中,我将其用作:
<MyText Title="Abc" />
现在我想扩展这个组件,但不想更改它,而是通过一个新组件 MyTextEx 派生它并添加另一个参数。比如:
@inherits MyText
<!-- Show base component something like: --!>
@base
<p>@Message</p>
public partial class MyTextEx
{
[Parameter] public string Message { get; set; }
}
我找不到如何显示基本组件的内容?所以呈现为:
<p>@Title</p>
<p>@Message</p>
请注意,这是一个简化的示例,我的基础组件有很多参数、事件和希望可以被扩展/派生组件覆盖的虚拟方法。我试图避免在基本组件的 razor 文件中使用类似组合的方法,因为 AFAIK 我必须再次使用参数填充它:
@inherits MyText
<MyText Title="@Title" />
<p>@Message</p>
我能够找到带有基本/抽象组件的继承示例,但找不到带有 final 组件的继承。
知道如何实现吗?
谢谢,Csaba
【问题讨论】:
标签: c# inheritance razor blazor