gpt4 book ai didi

.net-core - 在 Blazor 客户端中,如何为界面创建组件?

转载 作者:行者123 更新时间:2023-12-03 07:02:31 26 4
gpt4 key购买 nike

从可重用性的角度来看,我想为界面创建一个组件。所以我将它与不同的具体物体一起使用。

比如界面是这样的

interface ICalculation
{
double Calculate();
}

测试组件是

<button @onclick="(() => SetResult())">Set</button>
@result

@code{
double result;
ICalculation Calculation;
void SetResult()
{
result = Calculation.Calculate();
}

}

所以在另一个组件/页面的其他地方我有类似的东西

<Test  inject CalculationA />
<Test inject CalculationB />

所以我想将不同的计算注入(inject)到该组件的不同实例中。我怎样才能得到这个?

我想过使用net core的依赖注入(inject),但那是为了为一个接口(interface)注入(inject)一个对象。为什么重要?它帮助我覆盖对 api 的请求,例如,管理员和用户有不同的请求,但他们看到相同的页面结构。

最佳答案

在测试组件中,您可以将其设为普通参数:

[Parameter]  
public ICalculation Calculator { get; set; }

然后在“其他地方”

@inject CalculationA  CalculationA  
@inject CalculationB CalculationB

<Test Calculator="CalculationA" />
<Test Calculator="CalculationB" />

或者将这些“@inject”行替换为正常实例化 (2x),因为使用多个实现,您无论如何都无法在接口(interface)上进行 DI。

关于.net-core - 在 Blazor 客户端中,如何为界面创建组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59424866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com