簡體   English   中英

是否創建了控制器類實例並在 ASP.NET Framework 中的每個請求中調用了相應的實例方法?

[英]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.

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