【发布时间】:2020-09-18 10:37:05
【问题描述】:
我想在服务器端 Blazor 中的单例服务方法中使用范围服务。
我发现您可以在函数参数中使用[FromServices] 属性,但是当我调用该方法时,由于使用较少参数调用该方法而出现编译器错误。
我尝试使用虚拟参数调用该方法,希望在调用时它会被覆盖,但事实并非如此。
范围服务:
public class UserContext
{
public string SomeUserRelatedData {get; set;}
}
单例服务:
public class GlobalService
{
...
public void DoSomethingWithUserData([FromServices]UserContext usercontext)
{
...
}
}
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSingleton<GlobalService>();
services.AddScoped<UserContext>();
}
}
【问题讨论】:
-
不确定这是否仅适用于控制器? “指定应使用 request 服务绑定操作参数。” - FromServicesAttribute
标签: c# asp.net-core dependency-injection blazor