我正在尝试以某种方式在客户端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部分声明的基类继承吗?
答案 0 :(得分:1)
这是关于C#如何实现部分类的。
在SomePage.razor中,您必须添加
@inherits BasePage
就像错误状态一样,部分类的所有部分都必须指定相同的基类(或不指定任何基类,则将使用另一部分中的基类)。
您的SomePage.razor文件首先被编译为C#,然后生成器将ComponentBase指定为基类。
由于您无法告诉生成器忽略基类,因此需要使用@inherits
来覆盖它。
因此,您可以(但不必)将落后的课程缩短为
partial class SomePage { }
public
修饰符和基类将从生成的零件中获取。