我目前正在尝试抽象一种机制,以枚举IAsyncEnumerable可用。
我有一个基本看起来像这样的基本组件类
// EnumerableRazorComponentBase.razor
@typeparam TObject
@if (!(this.enumerationTask?.IsCompleted ?? false))
{
// Display loading bar
}
// EnumerableRazorComponentBase.razor.cs
public abstract partial class EnumerableRazorComponentBase<TObject> : ComponentBase
{
private Task enumerationTask;
// rest of enumeration logic...
}
现在我在剃刀组件中继承此基类
// SomeComponent.razor
@inherits EnumerableRazorComponentBase<IMyInterface>
// other razor markup
@code {
// rest impl
}
[EnumerableRazorComponentBase.razor.cs
被正确继承并且可以正常工作,但是EnumerableRazorComponentBase.razor
中的标记未添加到SomeComponent.razor
的标记中。
是否有可能从基类继承剃刀标记,如果是这样,我做错了什么/我想念什么?
是否有可能从基类继承剃刀标记,
是,是的。但是您不能在派生类中添加其他标记。另一方面,如果在派生类中添加标记,它将覆盖基类的标记。
例如,您可以从InputText组件派生您的组件,并提供您自己的标记,而不是InputText组件提供的标记,例如您想将其变成输入密码组件。在这种情况下,仅使用标记会覆盖以前的外观,而采用新外观。也就是说,“基类”的标记被“丢弃”,而是使用派生类的标记。