3 回答
TA贡献1874条经验 获得超12个赞
更新:
该错误来自 WebAssembly,因此它是一个客户端应用程序。客户端上没有 HostingEnvironment,因此服务未注册。如果是的话那就没什么用了。
所以,退一步:为什么(你认为)你需要它?
您应该将其设为受保护或公共读/写属性:
// in IndexComponent
[Inject]
protected IHostingEnvironment HostingEnvironment { get; set; }
并删除构造函数参数。
旁注:IHostingEnvironment 已标记为已过时。
TA贡献1911条经验 获得超7个赞
事实证明,对于 Blazor,您需要一个稍微不同的界面,即IWebAssemblyHostEnvironment
。
从此文档中,您应该注入的是:
@inject IWebAssemblyHostEnvironment HostEnvironment
TA贡献1830条经验 获得超9个赞
来自这个评论:
WASM:System.InvalidOperationException:无法为属性“HostingEnvironment”提供值;在类型“JewelShut.Client.Pages.Index”上。没有类型为“Microsoft.AspNetCore.Hosting.IHostingEnvironment”的已注册服务;
我猜这是一个客户端 Blazor 应用程序。 (如果我的猜测有误,我很抱歉。)。在客户端 Blazor 上,IHostingEnvironment
默认情况下不会在 DI 容器中注册。该错误仍然表明您尝试注入的服务尚未注册。注册服务:
在 Startup.cs 中:
public void ConfigureServices(IServiceCollection services)
{
//few sample for you
services.AddScoped<AuthenticationStateProvider, ApiAuthenticationStateProvider>();
services.AddAuthorizationCore();
//register the required services
//services.Add...
}
- 3 回答
- 0 关注
- 182 浏览
添加回答
举报