ASP.NET Core 2.1を使用して次のコードを取得します。
_[HttpGet("/unresolved")]
public async Task<ActionResult<IEnumerable<UnresolvedIdentity>>> GetUnresolvedIdentities()
{
var results = await _identities.GetUnresolvedIdentities().ConfigureAwait(false);
return results.ToList();
}
_
GetUnresolvedIdentities()
が_IEnumerable<UnresolvedIdentity>
_を返すので、ただ返すことができると思っていたでしょう
_return await _identities.GetUnresolvedIdentities().ConfigureAwait(false);
_
私ができないのを除いて、私はこのエラーを受け取ります:
CS0029型_
'System.Collections.Generic.IEnumerable<Data.Infrastructure.Models.UnresolvedIdentity>'
_を_'Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.IEnumerable<Data.Infrastructure.Models.UnresolvedIdentity>>'
_に暗黙的に変換できません
.ToList()
が必要です。これは1行ではなく2行なので迷惑です。
なぜ_ActionResult<T>
_がGetUnresolvedIdentities()
が_IEnumerable<>
_を返し、それを返すだけなのかわかりませんか?
GetUnresolvedIdentities
の署名は次のとおりです。
_Task<IEnumerable<UnresolvedIdentity>> GetUnresolvedIdentities();
_
Msdnから次のドキュメントを入手してください: https://docs.Microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-2.1#actionresultt-type
C#は、インターフェイスでの暗黙的なキャスト演算子をサポートしていません。したがって、
ActionResult<T>
を使用するには、インターフェイスを具象型に変換する必要があります。