通过包装返回a的方法是否会遇到任何问题?
Task<T> where T : ClassA
使用返回一个
Task<T> where T : IClassA
换句话说,包装一个返回某种类型的Task的方法和另一个返回该类型接口的Task的方法,如下所示:
public new Task<ITspIdentity> FindByIdAsync(string id)
{
return new Task<ITspIdentity>(() => base.FindByIdAsync(id).Result);
}
base.FindByIdAsync(id)将返回的位置
Task<TspIdentity>.
我可以通过使用接口将ASP.NET MVC应用程序表示层与对ASP.Identity的依赖脱钩。
只要调用代码不依赖于只能通过ClassA
和不可以通过的成员,IClassA
就不会有问题。
您正在创建并返回Cold Task
,它将同步运行异步方法,这会浪费资源。您可以重构该代码,只需执行以下操作:
public new async Task<ITspIdentity> FindByIdAsync(string id)
{
var tspIdentity = await base.FindByIdAsync(id).ConfigureAwait(false);
return (ITspIdentity) tspIdentity;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句