[英]Is controller class instance created and a respective instance method is called at each request in ASP.NET Framework?
Web 應用程序類型和控制器在 ASP.NET Framework 中是否相同?
在通過 C#的CLR 中有以下摘錄:
當未來的客戶端對已經運行的 Web 應用程序發出請求時,ASP.NET 不會創建新的 AppDomain; 相反,它使用現有的 AppDomain,創建 Web 應用程序類型的新實例,並開始調用方法。 這些方法已經被 JIT 編譯成本機代碼,因此處理所有后續客戶端請求的性能非常好。
這是否意味着在 ASP.NET Framework 中的每個請求中都會創建控制器類實例並調用相應的實例方法?
例如,如果我有以下控制器:
[RoutePrefix("prefix")]
public class FooController : ApiController
{
[HttpGet]
[Route("something/{id}")]
public string GetSomething(int id)
{
return "something";
}
}
這是否意味着每次我請求prefix/something/47
(此處的任何數字而不是 47 和主機之前的 url 應存在)時, FooController
創建一個FooController.GetSomething
的新實例並調用FooController.GetSomething
方法?
是的,每個請求都會使用一個新的 Controller 實例。 正如指出這個答案的舊問題,新情況下使用,以避免與處理多個請求的潛在狀態的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.