【问题标题】:How to use a different base class in blazor page model partial declaration?如何在 Blazor 页面模型部分声明中使用不同的基类?
【发布时间】:2020-04-18 11:19:18
【问题描述】:

我正在尝试以某种方式在客户端 Blazor 中使用 pagemodel 类,因此我不必重新键入所有“基础”属性

我正在考虑创建课程

public partial class SomePage : BasePage
{ }

错误 CS0263 'Somepage' 的部分声明不能指定不同的基类

我的基类是这样的

 public class BasePage : ComponentBase
    {
        [Inject]
        protected NavigationManager NavigationManager { get; set; }

        [Inject]
        protected HttpClient Http { get; set; }

    }

我还尝试更改添加 IComponent、IHandleEvent、IHandleAfterRender 所以它看起来像这样

 public class BasePage : ComponentBase, IComponent, IHandleEvent, IHandleAfterRender

但这并没有帮助。

任何想法如何从 PageModel 部分声明中的基类继承?

【问题讨论】:

    标签: blazor blazor-client-side


    【解决方案1】:

    这是关于 C# 如何实现部分类的。

    在 SomePage.razor 中你必须添加

    @inherits BasePage 
    

    与错误状态一样,部分类的所有部分都必须指定相同的基类(或不指定,则将使用来自另一部分的基类)。

    您的 SomePage.razor 文件首先编译为 C#,生成器默认将 ComponentBase 指定为基类。 由于您不能告诉生成器省略基类,因此您必须使用 @inherits 来覆盖它。

    因此,您可以(但不必)将后面的类缩短为

     partial class SomePage  // code-behind
     {
     }
    

    public 修饰符和基类将从生成的部分中获取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      相关资源
      最近更新 更多