私はこのシグネチャを持つポータブルクラスライブラリ内部での非同期メソッドを持っていますこれはエラーになり非同期ラムダ式を代入するSystem.Func <T>?それは私がサードパーティのキャッシュで働いている</p> <p>コンクリート型Tとしてバックキャストされたリソースを取得し</p> <pre><code>private async Task<T> _Fetch<T>(Uri uri) </code></pre> <p>:
await this.CacheProvider.GetOrCreateObject<T>(key,
async() => await _Fetch<T>(uri), cacheExpiry);
:パラメータの一つとしてFunc<T>
を必要とし、このようにそうしようとしたライブラリー(Akavache)
await this.CacheProvider.GetOrCreateObject<T>(key,
() => _Fetch<T>(uri).Result, cacheExpiry);
:
Cannot convert async lambda expression to delegate type '
System.Func<T>
'. An async lambda expression may returnvoid
,Task
orTask<T>
, none of which are convertible to 'System.Func<T>
'.
私は運なしFunc<T>
割り当ての様々な順列を試してみた、私は仕事にコードを取得することができます唯一の方法は、Func<T>
ブロックを作ることです。
私が迷っている場所のポインタはありますか?
あなたは 'Func' –