我想为Task<HttpResponseMessage>
返回true / false,如何执行此操作。
目前我在这里遇到错误了,
无法从'bool'转换为'System.Func
'
private Task<HttpResponseMessage> PersistData()
{
Trace.TraceError("test");
return new Task<HttpResponseMessage>(true);
}
更新:
我想返回Task<HttpResponseMessage>
,其中包含一些空白或其他内容,该怎么做。
private Task<HttpResponseMessage> PersistData()
{
Trace.TraceError("test");
//what to return here?
}
答案 0 :(得分:1)
您不能为HttpResponseMessage返回true或false,但是可以更改返回值的类型。
private Task<bool> PersistData()
{
Trace.TraceError("test");
return Task.FromResult(true)
}
已更新 不同步
private HttpResponseMessage PersistData()
{
Trace.TraceError("test");
return new HttpResponseMessage(HttpStatusCode.OK);
}
异步
private Task<HttpResponseMessage> PersistData()
{
Trace.TraceError("test");
return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK));
}
答案 1 :(得分:1)
您不能完全返回True / False,但是可以通过底层代码来解决此问题。
Private Task<HttpResponseMessage> PersistData()
{
Trace.TraceError("test");
return new Task<HttpResponseMessage>(() => new HttpResponseMessage(HttpStatusCode.Accepted));
}
然后,您可以检查HttpStatuseCode是否为“ HttpStatuseCode.Accepted”,其含义为true或其他。同样,
Private bool Validation()
{
var temp = PersistData();
if (temp.Result.StatusCode == HttpStatusCode.Accepted)
return true;
else
return false;
}
答案 2 :(得分:0)