我得到一个例外。
无法隐式将
'System.Collections.Generic.List<IntegraPay.Domain.SObjects.Industry>'
类型转换为'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IntegraPay.Domain.SObjects.Industry>>'
以下是我的财产和方法。
private List<WebFormFieldContent> WebFormFields { get; set; } =
new List<WebFormFieldContent>();
Task<IEnumerable<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return WebFormFields;
}
答案 0 :(得分:10)
当您在方法声明中缺少async
时,通常会发生此错误。
当您将async
放入签名时,C#编译器会添加&#34; magic&#34;从对象转换为返回该对象的Task<T>
。
但是,在您的情况下async
是不必要的,因为您返回的任务包含您已有的结果:
return Task.FromResult<IEnumerable<WebFormFieldContent>>(
WebFormFields
);
答案 1 :(得分:2)
您的方法返回类型是
Task<IEnumerable<WebFormFieldContent>>
但实现返回
List<WebFormFieldContent>.
您可以将其更改为
Task<List<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return Task.FromResult(WebFormFields);
}
或将私有变量更改为
IEnumerable<WebFormFieldContent> WebFormFields { get; set; } =
new List<WebFormFieldContent>();
类型。
或者您可以添加异步关键字以使其成为同步调用
async Task<IEnumerable<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return WebFormFields;
}