Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# @inject HttpClient与@using System.Net.Http之间的问题;在查看页面上_C#_Dependency Injection_Blazor - Fatal编程技术网

C# @inject HttpClient与@using System.Net.Http之间的问题;在查看页面上

C# @inject HttpClient与@using System.Net.Http之间的问题;在查看页面上,c#,dependency-injection,blazor,C#,Dependency Injection,Blazor,那么@和System.Net.Http之间有什么不同呢;在这里创建对象并调用@inject HttpClient Http之间的方法有什么不同,所以我正在尝试学习Blazor 这行得通吗有人能解释一下区别吗 @using System.Net.Http; @code { private WeatherForecast[] forecasts; protected override async Task OnInitializedAsync() {

那么@和System.Net.Http之间有什么不同呢;在这里创建对象并调用@inject HttpClient Http之间的方法有什么不同,所以我正在尝试学习Blazor

这行得通吗有人能解释一下区别吗

 @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");
        }
@使用System.Net.Http;
@代码{
私人天气预报[]预测;
受保护的重写异步任务OnInitializedAsync()
{
var Http=new-HttpClient();
forecast=wait Http.GetFromJsonAsync(“sample data/weather.json”);
}

@page”/fetchdata
@注入HttpClient Http
@代码{
私人天气预报[]预测;
受保护的重写异步任务OnInitializedAsync()
{
forecast=wait Http.GetFromJsonAsync(“sample data/weather.json”);
}

使用
var Http=new HttpClient();
时,创建一个包含HttpClient类型实例的局部变量

当您使用
@injecthttpclient Http
时,您会告诉Blazor创建HttpClient服务的实例,并将其分配给名为Http的属性


不建议使用上述第一种用法。您应该始终注入对象,而不是实例化它们。注入的对象由依赖项注入系统创建,该系统可以创建对象、控制对象的生命周期以及许多其他好处,您可以在有关依赖项注入的文档中了解这些好处。

使用
var Http=new HttpClient();
,创建一个包含HttpClient类型实例的局部变量

当您使用
@injecthttpclient Http
时,您会告诉Blazor创建HttpClient服务的实例,并将其分配给名为Http的属性

不建议使用上述第一种用法。您应该始终注入对象,而不是实例化它们。注入的对象由依赖项注入系统创建,该系统可以创建对象、控制对象的生命周期,以及您可以在有关依赖项注入的文档中读到的许多其他好处。

谢谢:):)谢谢: ) :) :)
@page "/fetchdata"
@inject HttpClient Http


    @code {
        private WeatherForecast[] forecasts;
    
        protected override async Task OnInitializedAsync()
        {
            forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
        }