6 c# async-await api-eveonline
我用下面的代码集得到了下面的错误,这是'alliancelookup'行上的错误,我不知道我做错了什么,但我自己也看不到任何东西.运行到顶部的查询似乎运行正常,但似乎我遇到的问题是与Awaiter,我想知道是否有办法解决这个问题?
DynamicCrest crest = new DynamicCrest();
var root = await crest.GetAsync(crest.Host);
var alliancelookup = await (await root.GetAsync(r => r.alliances)).First(i => i.shortName == e.GetArg("allianceticker").ToUpper());
allianceid = alliancelookup.id;
Run Code Online (Sandbox Code Playgroud)
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:'System.Dynamic.ExpandoObject'在System.Dynamic.UpdateDelegates.UpdateAndExecute1 [T0,TRet](CallSite)的CallSite.Target(Closure,CallSite,Object)中不包含'GetAwaiter'的定义网站,T0 arg0)at***.程序.<> c.<b__2_10> d.MoveNext()在C:\ Users ---\Documents\Visual Studio 2015\Projects ------\Program.cs :第95行
如果没有一个最小的,完整的,可验证的例子,就不可能确切地知道什么是错的,但它看起来确实是你想要的await东西await.
拆分alliancelookup线:
// Asynchronously retrieve the alliances.
var alliances = await root.GetAsync(r => r.alliances);
// Synchronously get the first matching one.
var allianceLookup = alliances.First(i => i.shortName == e.GetArg("allianceticker").ToUpper());
Run Code Online (Sandbox Code Playgroud)
可能有更好的方法,将过滤器移动到异步代码中,但这取决于DynamicCrest.
您正在等待异步调用,因此必须将异步任务放在调用此代码的方法的开头
public async Task<returntyp> Name()
{
DynamicCrest crest = new DynamicCrest();
var root = await crest.GetAsync(crest.Host);
var alliancelookup = await (await root.GetAsync(r => r.alliances)).First(i => i.shortName == e.GetArg("allianceticker").ToUpper());
allianceid = alliancelookup.id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34646 次 |
| 最近记录: |