gpt4 book ai didi

c# - Asp.Net Core ControllerBase.Response,源代码在哪里?

转载 作者:行者123 更新时间:2023-12-02 05:10:25 26 4
gpt4 key购买 nike

ASP.NET Core 现在开源真是太棒了,特别是因为文档仍在编写中,但我常常很难找到我想要查看的代码。

例如,我想看看 Controller 如何实现 Response.Redirect但是代码在哪里?

我能够在 GitHub 上找到 ControllerBase 代码的 RC2 版本:https://github.com/aspnet/Mvc/blob/1.0.0-rc2/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs

通过克隆 github.com/aspnet/Mvc 存储库,我能够使用 VS2015 了解到 HttpResponse ControllerBase 使用的类是 abstract类(class)。但我现在已经走进了死胡同。

HttpResponse的具体实现代码在哪里由 ControllerBase 使用?这是一个真正的大问题:你是如何找到该代码的?

最佳答案

回答我自己的问题,以防对其他人有帮助。

HttpResponse 类的源代码可以在这里找到:https://github.com/aspnet/HttpAbstractions/blob/1.0.0-rc2/src/Microsoft.AspNetCore.Http.Abstractions/HttpResponse.cs但它是一个抽象类而不是具体类。事实证明,具体的实现是一个名为 DefaultHttpResponse 的类,该类的代码位于: https://github.com/aspnet/HttpAbstractions/blob/1.0.0-rc2/src/Microsoft.AspNetCore.Http/Internal/DefaultHttpResponse.cs

此源代码很难找到的原因之一是它属于未包含在 GitHub 上的 ASP.NET Core MVC 存储库中的项目的一部分。虽然 MVC 存储库确实包含许多项目,但包含 HttpResponseDefaultHttpResponse 的项目不在其中。

那么我如何找到代码的位置呢?我在 Visual Studio 中浏览 ASP.NET Core MVC 源代码,最终注意到,当我按 F12 从 ControllerBase 类导航到 HttpResponse 代码时,它在页面顶部以浅灰色表示以下Assembly Microsoft.AspNetCore.Http.Abstractions

这让我在谷歌上搜索 Microsoft.AspNetCore.Http.Abstractions ,果然它位于不同的 Git 存储库中。克隆该存储库后,我可以使用 Visual Studio 搜索 HttpResponse。然后我右键点击类名去实现。这将我带到了 DefaultHttpResponse 类,它是 HttpResponse 类的具体实现。是的!

我想让我困惑的事情之一是 git 存储库的名称以“Abstractions”结尾。最初我认为这样的存储库只包含接口(interface)等,但事实证明 Microsoft.AspNetCore.Http.Abstractions 存储库包含多个项目,其中一些项目包含许多必须执行的类的实现包含 HttpResponseHttpContext 及其具体实现为 DefaultHttpResponse

screen shot

关于c# - Asp.Net Core ControllerBase.Response,源代码在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com