![](/img/trans.png)
[英]asp.net core ControllerBase.User without implementing Controller
[英]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存儲庫確實包含許多項目,但是包含HttpResponse
和DefaultHttpResponse
的項目不在其中。
那么我如何找到代碼的位置呢? 我在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.