Mono的System.Net.Http是否支持createResponse?

时间:2017-04-03 03:47:34

标签: f# mono visual-studio-code azure-functions ionide

我在Mac上使用VS Code和Ionide编辑F#Azure功能文件。

以下是我的小测试功能:

#if !COMPILED
#I "../packages/Microsoft.Azure.WebJobs/lib/net45/"
#r "Microsoft.Azure.WebJobs.Host.dll"
#endif

#r "System.Net.Http"
#r "Microsoft.WindowsAzure.Storage"
#r "Newtonsoft.Json"

open System
open System.Net
open System.Net.Http
open Microsoft.Azure.WebJobs.Host

type Item = { id: string; comment: string }

let Run(req: HttpRequestMessage, output: byref<Item>, log: TraceWriter) =
    let item = { id = "Some ID"; comment = "test comment" }
    output <- item 
    async {
        // createResponse has a red line beneath it
        return req.createResponse(HttpStatusCode.Created)
    } |> Async.StartAsTask    

在VS Code中查看此文件时,createResponse下方会显示一条红线。

当我将鼠标悬停在createResponse上时,错误消息为The field, constructor or member 'createResponse' is not defined.。这是因为Mono的System.Net.Http版本不支持createResponse吗?

鉴于我不想在本地运行或编译此文件,无论如何都要告诉Ionide使用不同版本的System.Net.Http

1 个答案:

答案 0 :(得分:0)

CreateResponse方法是一种扩展方法 - 虽然它存在于System.Net.Http命名空间中,但它存在于不同的程序集中。 (我不确定为什么它在Azure中编译,默认情况下可能会添加一些额外的引用?)

为了让Ionide高兴,我添加了这些nuget包:

这些参考文献:

#I ".."
#r "packages/System.Net.Http.Formatting.Extension/lib/System.Net.Http.Formatting.dll"
#r "packages/Microsoft.AspNet.WebApi.Core/lib/net45/System.Web.Http.dll"