所以,在@inject中创建对象和调用方法有什么不同,@inject又有什么不同,所以我正在尝试学习HttpClient
这项工作有人能给我解释一下区别吗?
@using System.Net.Http;
@code {
private WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
var Http = new HttpClient();
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
}或
@page "/fetchdata"
@inject HttpClient Http
@code {
private WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
}发布于 2020-11-12 03:23:13
使用var Http = new HttpClient();时,将创建一个包含HttpClient类型实例的局部变量。
当您使用@inject HttpClient Http时,您告诉Blazor创建HttpClient服务的实例,并将其分配给名为Http的属性。
不推荐使用上面描述的第一种用法。你应该总是注入你的对象,而不是实例化它们。注入对象是由依赖注入系统创建的,这些依赖注入系统创建对象,控制对象的生命周期,以及您可以在有关依赖注入的文档中了解到的许多其他好处。
https://stackoverflow.com/questions/64792600
复制相似问题