Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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# Azure函数-返回类型HttpResponseMessage和IActionResult之间的差异_C#_Azure_Azure Functions - Fatal编程技术网

C# Azure函数-返回类型HttpResponseMessage和IActionResult之间的差异

C# Azure函数-返回类型HttpResponseMessage和IActionResult之间的差异,c#,azure,azure-functions,C#,Azure,Azure Functions,我已经创建了Http触发器Azure函数,它的默认返回类型是Task 如果我将其更改为任务,有什么区别吗 带有任务的Azure函数返回类型: public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, 公共静态异步任务运行( [HttpTrigger(Authori

我已经创建了Http触发器Azure函数,它的默认返回类型是
Task

如果我将其更改为
任务
,有什么区别吗

带有
任务的Azure函数
返回类型:

 public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Function,“post”,Route=null)]HttpRequest请求,
Azure函数与
任务

公共静态异步任务运行(
[HttpTrigger(AuthorizationLevel.Function,“post”,Route=null)]
HttpRequestMessage消息,

使用
IHttpActionResult
界面有两个主要优点

BadRequest()
Conflict()
Created()
InternalServerError()
Redirect()
Unauthorized()
  • 代码更清晰,更容易阅读
  • 单元测试控制器操作方法要简单得多。我们将 讨论单元测试返回的方法有多容易 在稍后的视频中,IHTTPacationResult代替了HttpResponseMessage
  • 你可以在这里看到

    static List<Student> students = new List<Student>()
    {
        new Student() { Id = 1, Name = "Tom" },
        new Student() { Id = 2, Name = "Sam" },
        new Student() { Id = 3, Name = "John" }
    };
    
    public IHttpActionResult Get()
    {
        return Ok(students);
    }
    
    
    public HttpResponseMessage Get(int id)
    {
        var student = students.FirstOrDefault(s => s.Id == id);
        if (student == null)
        {
            return Request.CreateErrorResponse(HttpStatusCode.NotFound,
                "Student not found");
        }
    
        return Request.CreateResponse(student);
    }
    

    我参考了这个链接

    使用
    IHttpActionResult
    界面有两个主要优点

    BadRequest()
    Conflict()
    Created()
    InternalServerError()
    Redirect()
    Unauthorized()
    
  • 代码更清晰,更容易阅读
  • 单元测试控制器操作方法要简单得多。我们将 讨论单元测试返回的方法有多容易 在稍后的视频中,IHTTPacationResult代替了HttpResponseMessage
  • 你可以在这里看到

    static List<Student> students = new List<Student>()
    {
        new Student() { Id = 1, Name = "Tom" },
        new Student() { Id = 2, Name = "Sam" },
        new Student() { Id = 3, Name = "John" }
    };
    
    public IHttpActionResult Get()
    {
        return Ok(students);
    }
    
    
    public HttpResponseMessage Get(int id)
    {
        var student = students.FirstOrDefault(s => s.Id == id);
        if (student == null)
        {
            return Request.CreateErrorResponse(HttpStatusCode.NotFound,
                "Student not found");
        }
    
        return Request.CreateResponse(student);
    }
    
    我参考了这个链接

    如果我将
    任务
    更改为
    任务
    ,有什么区别吗

    您可以使用
    任务
    作为函数的返回类型。使用它执行时应该不会有问题

    话虽如此,使用这两种方法的区别在于从函数返回响应的方式

    • 如果是
      IActionResult
      类型的响应,则代码较少 在构造响应时进行写入,并进行单元测试 更简单
    • 另一方面,
      HttpResponseMessage
      提供了对 通过网络发送的Http响应消息
    作为旁注

    HttpTrigger
    Azure函数
    v1.0
    中,类型
    Task
    HttpRequestMessage
    分别用作返回类型和请求类型的默认值

    v2.0
    开始,类型
    Task
    HttpRequest
    分别用作默认返回类型和请求类型,因为它符合.net核心API结构

    如果我将
    任务
    更改为
    任务
    ,有什么区别吗

    您可以使用
    任务
    作为函数的返回类型。使用它执行时应该不会有问题

    话虽如此,使用这两种方法的区别在于从函数返回响应的方式

    • 如果是
      IActionResult
      类型的响应,则代码较少 在构造响应时进行写入,并进行单元测试 更简单
    • 另一方面,
      HttpResponseMessage
      提供了对 通过网络发送的Http响应消息
    作为旁注

    HttpTrigger
    Azure函数
    v1.0
    中,类型
    Task
    HttpRequestMessage
    分别用作返回类型和请求类型的默认值


    v2.0
    开始,类型
    Task
    HttpRequest
    分别被用作默认返回类型和请求类型,因为它符合.net核心API结构。

    检查此链接,希望它能帮助您的请求。检查此链接,希望它能帮助您的请求。