簡體   English   中英

Asp.Net Core ControllerBase.Response,源代碼在哪里?

[英]Asp.Net Core ControllerBase.Response, Where's the sourcecode?

ASP.NET Core現在是開源的,真是太棒了,特別是因為文檔仍在編寫中,但是通常我很難找到要查看的代碼。

因此,例如,我想看看控制器如何實現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來了解ControllerBase使用的HttpResponse類是一個abstract類。 但是我現在處於死胡同。

ControllerBase使用的HttpResponse具體實現的代碼在哪里? 這是一個非常大的問題:您如何找到該代碼?

回答我自己的問題,以防他人受騙。

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/內部/ DefaultHttpResponse.cs

很難找到此源代碼的原因之一是,它是項目的一部分,該項目未包含在GitHub上的ASP.NET Core MVC存儲庫中。 雖然MVC存儲庫確實包含許多項目,但是包含HttpResponseDefaultHttpResponse的項目不在其中。

那么我如何找到代碼的位置呢? 我在Visual Studio中瀏覽ASP.NET Core MVC源代碼,最終發現當我按F12鍵從ControllerBase類導航到HttpResponse的代碼時,它在Assembly Microsoft.AspNetCore.Http.Abstractions頁面的頂部指示了以下內容Assembly Microsoft.AspNetCore.Http.Abstractions淺灰色的Assembly Microsoft.AspNetCore.Http.Abstractions

然后,這使我在Microsoft.AspNetCore.Http.Abstractions進行了搜索,並確保它位於不同的Git存儲庫中。 克隆該存儲庫后,就可以使用Visual Studio搜索HttpResponse。 然后,我右鍵單擊類名以執行。 那把我帶到DefaultHttpResponse類,它是HttpResponse類的具體實現。 是啊!

我猜讓我感到困惑的一件事是git存儲庫的名稱以“抽象”結尾。 最初,我認為這樣的存儲庫將只包含接口等,但事實證明Microsoft.AspNetCore.Http.Abstractions存儲庫包含多個項目,其中一些包含與HttpContext有關的類的許多實現,其中HttpContext包括HttpResponse和它的具體實現為DefaultHttpResponse

屏幕截圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM