Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在调用.NET RESTful api时,系统是否会创建api实例?_C#_Asp.net_Api - Fatal编程技术网

C# 在调用.NET RESTful api时,系统是否会创建api实例?

C# 在调用.NET RESTful api时,系统是否会创建api实例?,c#,asp.net,api,C#,Asp.net,Api,调用RESTful API时,系统是否会创建该API的实例并将其存储在内存中?在一种方法中更改的全局变量值是否会保存到内存中?我可以在同一API中的另一个方法中访问该全局变量吗 例如,我有一个RESTful API,如下所示: public class TestController : ApiController { private ApplicationDbContext _context; private bool _isTest; public TestContr

调用RESTful API时,系统是否会创建该API的实例并将其存储在内存中?在一种方法中更改的全局变量值是否会保存到内存中?我可以在同一API中的另一个方法中访问该全局变量吗

例如,我有一个RESTful API,如下所示:

public class TestController : ApiController
{
    private ApplicationDbContext _context;
    private bool _isTest;

    public TestController()
    {
        _context = new ApplicationDbContext();
        _isTest = false;
    }

    // GET /api/test
    [HttpGet]
    public IHttpActionResult GetTest()
    {
       _isTest = true;
       //some code...
       return Ok();
    }

    // DELETE /api/test/{id}
    [HttpDelete]
    public void RemoveTest(int id)
    {
       if (_isTest)
       {
           //other code...
           Console.WriteLine("Success!");
       }
    }
}

如果我先调用GET方法,然后调用DELETE方法,控制台会输出“Success”吗?

那么,您可以很容易地退出并尝试代码以查看发生了什么。否。每个HTTP请求都会创建和销毁控制器。如果需要在请求之间持久化某些内容,可以使用会话变量、应用程序变量或全局/静态变量。您是指
TestController
?正如JohnWu所说,它将为每个HTTP请求重新制作。您可以使用静态变量,并且是否可以访问它取决于访问级别(例如,
public
protected
internal
private