c# - Blazor 组件 - 从通用 BaseClass 继承

标签 c# .net blazor

我有一个如下所示的基本组件:

CatalogTableBase.razor.cs(CatalogTableBase.razor 的代码隐藏)

public class CatalogTableBase<T>
    {

        [Parameter]
        public IEnumerable<Feature<T>>? FeatureList { get; set; }

        [Parameter]
        public List<string>? FeatureGroupProperties { get; set; }

        [Parameter]
        public bool ShowHeader { get; set; } = true;

    }

现在,我想创建 2 个不同的子组件,它们一次实现一个 string 作为一般传递的类型,一次实现一个 double

FeatureRangeCatalogTable.razor

@inherits CatalogTableBase<double>

<div>
...
</div>

这会引发 CS0115错误。 (FeatureRangeCatalogTable.BuildRenderTree(RenderTreeBuilder):找不到合适的方法来覆盖)

我猜抛出的错误与解释器不知道如何处理 @inherits 行有关。 我无法思考为什么这行不通。继承后面代码中的类 (FeatureRangeCatalogTable.razor.cs) 也不起作用。

TL:DR

如何在 blazor 组件中实现通用基类?

最佳答案

CatalogTableBase 必须在 ComponentBase 或类似的组件之后继承,才能使 BuildRenderTree 可用 docs

关于c# - Blazor 组件 - 从通用 BaseClass 继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76754787/

相关文章:

c# - IOC 和接口(interface)

javascript - 在 Electron 中使用.net dll

c# - 显示错误通知时禁用默认声音

Blazor 替换浏览器历史记录中的 URL

layout - Blazor .NET Core 3.0 - cshtml 页面可以使用 MainLayout.razor

c# - 调试器中 "base"的属性值

c# - 没有无参数构造函数的类型的 Activator.CreateInstance(Type)

asp.net - 当多个 Blazor 应用程序发布到 IIS 时,我们收到 HTTP 错误 500.35 - ASP.NET Core 不支持同一应用程序池中的多个应用程序

c# - UE4(虚幻引擎4)集成LuaJit时出现LNK2005错误

.net - 当我的进程被终止时到底发生了什么?