Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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# 对于dnx451和dnxcore50,我应该如何引用HttpClient?_C#_.net_Asp.net Core_Dotnet Httpclient_.net Core - Fatal编程技术网

C# 对于dnx451和dnxcore50,我应该如何引用HttpClient?

C# 对于dnx451和dnxcore50,我应该如何引用HttpClient?,c#,.net,asp.net-core,dotnet-httpclient,.net-core,C#,.net,Asp.net Core,Dotnet Httpclient,.net Core,如何使用project.json文件引用HttpClient 我希望这两个框架都能工作:dnx451和dnxcore50 { "dependencies": { "Microsoft.AspNet.WebApi.Client": "5.2.3" }, "frameworks": { "dnx451": { "frameworkAssemblies": { "System.Net.Http": "4.0.0.0" } },

如何使用
project.json
文件引用
HttpClient
我希望这两个框架都能工作:
dnx451
dnxcore50

{
  "dependencies": {
    "Microsoft.AspNet.WebApi.Client": "5.2.3"
  },
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Net.Http": "4.0.0.0"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.0-beta-22816"
      }
    }
  }
}
下面是我当前对
project.json
文件的尝试。(我已经删除了不相关的部分。)

发现我列出的依赖关系是一个反复试验的过程

使用此
project.json
文件,
dnxcore50
上下文正确解析此示例代码块中的所有类,但无法解析
HttpRequestMessage
HttpMethod
MediaTypeWithQualityHeaderValue
上下文:

var request = new HttpRequestMessage(HttpMethod.Get, "...");
request.Headers.Accept.Clear();
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/..."));
var response = await client.SendAsync(request);
var model = await response.EnsureSuccessStatusCode().Content.ReadAsAsync<SomeModel>();
var request=newhttprequestmessage(HttpMethod.Get,“…”);
request.Headers.Accept.Clear();
request.Headers.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/…));
var response=wait client.sendaync(请求);
var model=wait response.ensureccessstatuscode().Content.ReadAsAsync();
截至发帖时(2015年6月11日),这一组合对我的
dnx451
dnxcore50
都有效

{
  "dependencies": {
    "Microsoft.AspNet.WebApi.Client": "5.2.3"
  },
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Net.Http": "4.0.0.0"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.0-beta-22816"
      }
    }
  }
}

我认为蒂莫西的回答很有帮助,因为它引导我走上了正确的道路,但这个问题/答案也有几个月的历史了。从那时起,ASP.NET5已停止使用。以下是现在对我有效的方法:

{
  "version": "1.0.0-*",

  ...

  "dependencies": {
    "System.Runtime": "4.0.21-beta-23516",
    "Newtonsoft.Json": "6.0.6",
    "Microsoft.CSharp": "4.0.1-beta-23516",
    "System.Net.Http": "4.0.1-beta-23516"
  },
  "frameworks": {
    "dnx451": {
      "dependencies": {
      }
    },
    "dnxcore50": {
      "dependencies": {
      }
    }
  }
}
这似乎与指定依赖项的更详细的方式类似:

{
  "version": "1.0.0-*",

  ...

  "dependencies": {
    "System.Runtime": "4.0.21-beta-23516",
    "Newtonsoft.Json": "6.0.6",
    "Microsoft.CSharp": "4.0.1-beta-23516"
  },
  "frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    }
  }
}
这两个版本都可以工作,因为我能够成功地调试HttpClient调用


您可以忽略除System.Net.Http之外的其他依赖项。

请参阅@YuvalItzchakov,它使所有内容在dnx451上下文中正常工作,
HttpContent
上的
ReadAsAsync
扩展方法除外。它是
System.Net.Http
命名空间中的
HttpContentExtensions
类的成员。你知道我需要什么样的框架组件或依赖项吗?顺便说一句,这帮了大忙@尤瓦利扎科夫在你的帮助下,我找到了答案。看看我的答案。太棒了。很高兴它成功了。你需要每个框架的参考资料吗?顶级从属关系不适用于两种framworks吗?我只有“System.Net.Http”:“4.0.0-beta-23008”在依赖项中,并且在项目列表中显示为dnx451和dnxcore50引用。@jonas我刚刚确认,如果您按照您所说的做,则在dnx451和dnxcore50中将无法访问HttpClient。试着编写代码,在一个按您所说配置的项目中使用它。@Timothy Shields-我已经这样做了,除了它是Microsoft.Net.HttpClient,而且工作正常。@ShaneCurtrille记下问题和答案上的日期。