gpt4 book ai didi

f# - 字段、构造函数或成员 'AsyncReadToEnd' 未定义错误

转载 作者:行者123 更新时间:2023-12-01 10:07:53 25 4
gpt4 key购买 nike

我正在学习 RX(响应式扩展),发现有人在将近一年前发布了一些使用 F# 和 RX 制作简单的 webCrawler 的代码。我试着看看我是否可以重新使用代码。我下载 RX,并创建一个 F# windows 应用程序,添加对 System.Reactive 的引用。我的IDE是VS 2010 Ultimate,RX版本是:1.1.11111。以下是代码:

#light
open System
open System.Linq
open System.Collections.Generic
open System.Net
open System.IO
open System.Threading
open System.Text.RegularExpressions
open System.Reactive
open System.Reactive.Linq

let create f =
Observable.Create<_>(fun x ->
f x
new System.Action((fun () -> ())))

let ofAsync async =
create (fun obs -> Async.StartWithContinuations(async, obs.OnNext,obs.OnError,obs.OnError))

let fromEvent (event:IEvent<_,_>) = create (fun x -> event.Add x.OnNext)

let tickEvent = new Event<unit> ()
let tickEventObs = tickEvent.Publish |> fromEvent

let fetch(url:string) =
async { let req = WebRequest.Create(url)
let! resp = req.AsyncGetResponse()
let stream = resp.GetResponseStream()
let reader = new StreamReader(stream)
let! html = reader.AsyncReadToEnd()
return html
} |> ofAsync

但是代码无法编译,我得到了错误信息:错误 1 ​​未定义字段、构造函数或成员“AsyncReadToEnd”所以错误就在这一行:

let! html = reader.AsyncReadToEnd()

我想在过去的一年里,RX 或 F# 可能会有一些变化。对于我当前的环境,重写上述代码的正确方法是什么?谢谢大家,新年快乐!约翰

最佳答案

AsyncReadToEnd() StreamReader 的扩展方法是 FSharpPowerPack 的一部分现在。从 this 安装 FSharpPowerPack链接,如果还没有,则将对 FSharp.PowerPack 的引用添加到您的项目中。这应该使 AsyncReadToEnd() 方法可从您的其余代码访问。

关于f# - 字段、构造函数或成员 'AsyncReadToEnd' 未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8695493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com