mrT*_*ter 6 c# .net-4.0 async-await asp.net-web-api
我HttpClient在一个类库项目中使用(.net4.0).为了实现这个目的,我为Bcl添加了nuget包
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.AspNet.WebApi.Client" version="4.0.30506.0" targetFramework="net40" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net40" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net40" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net40" />
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net40" />
<package id="Newtonsoft.Json" version="4.5.6" targetFramework="net40" />
</packages>
Run Code Online (Sandbox Code Playgroud)
但我仍然收到错误消息
"严重程序代码说明项目文件行抑制状态错误CS1061'任务'不包含'GetAwaiter'的定义,并且没有扩展方法'GetAwaiter'接受类型'任务'类型的第一个参数(您是否缺少使用指令或装配参考?)"
我正在使用的代码如下
private async Task<bool> Login()
{
try
{
var status = false;
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Add("username", _userName);
client.DefaultRequestHeaders.Add("password", _password);
using (HttpResponseMessage response = await client.PostAsync(_url, null))
{
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var contents = await response.Content.ReadAsStringAsync();
AuthenticationResult result = JsonHelper.DeserializeJson<AuthenticationResult>(contents);
if (result != null) _authToken = result.authToken;
}
}
}
return status;
}
catch (Exception ex)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我将项目输出类型更改为Windows Application错误消失,这将开始工作.此错误仅在项目为a时出现Class Library
| 归档时间: |
|
| 查看次数: |
2683 次 |
| 最近记录: |