我正在将我的API从Web API 2移植到ASP.NET Core Web API.我曾经能够以下列方式添加自定义标头:
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add("X-Total-Count", count.ToString());
return ResponseMessage(response);
Run Code Online (Sandbox Code Playgroud)
如何在ASP.NET Core Web API中添加自定义标头?
要比较上一次提交的阶段:
git diff --cached
git diff --staged
Run Code Online (Sandbox Code Playgroud)
两个命令都会产生相同的结果,对吧?
这有什么问题?
// does not compile
interface IRepository<out T>
{
Task<T> Get(int id);
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨:
Invalid variance: The type parameter 'T' must be invariantly valid on ... 'T' is covariant.
Run Code Online (Sandbox Code Playgroud)
但是,当我删除任务时,代码将编译:
// compiles
interface IRepository<out T>
{
T Get(int id);
}
Run Code Online (Sandbox Code Playgroud)
为什么使接口异步会导致其无法编译?