未找到F#Async.Map
我有消息来源 当我尝试构建这个解决方案时,我在未找到F#Async.Map,f#,onvif,F#,Onvif,我有消息来源 当我尝试构建这个解决方案时,我在onvif.utils项目中遇到了以下问题 use! response = request.AsyncGetResponse() |> Async.Map(fun x-> x:?>HttpWebResponse) Error: Method or object constructor 'Map' not found D:\Working\onvifdm\onvifdm-code-96-trunk\onvif\onvif.utils
onvif.utils
项目中遇到了以下问题
use! response = request.AsyncGetResponse() |> Async.Map(fun x-> x:?>HttpWebResponse)
Error: Method or object constructor 'Map' not found
D:\Working\onvifdm\onvifdm-code-96-trunk\onvif\onvif.utils\OdmSession.fs
您可以使用以下代码作为替换:
let! webResponse = request.AsyncGetResponse()
use response = webResponse:?>HttpWebResponse
此外,您还可以编写自己的异步类型扩展-下面是一个方法。您只需为上述代码实现高阶函数。对于那些仍在寻找答案的人,问题在于Async引用了错误的类。将其更改为Microsoft.FSharp.Control.Async,问题应该得到解决。这里有一个扩展Async的函数,它来自于上的一个有用的源代码 它具有类型签名
('a->'b)->Async
例如—
let onInts = async { return 1 }
。。。是一个异步
,并且
let onStrings = Async.map (fun x -> x.ToString()) onInts
。。。生成一个
Async
此函数在您的项目中定义:因此,如果它找不到它,那么肯定是项目文件或其他方面有问题。不,Microsoft.FSharp.Control.Async.map
仍然给我提供未定义“map”
let onStrings = Async.map (fun x -> x.ToString()) onInts