我正在使用F#编写SignalR教程,我遇到了一个问题。 SignalR IHubConnectionContext具有动态的.All属性。您应该在此定义客户端将连接以接收来自服务器的通知的方法。它在C#中运行良好。但是,在F#中,我得到了:
字段,构造函数或成员'yourMethodHere'未定义
有没有人有任何想法?提前谢谢。
答案 0 :(得分:5)
我在F#中使用了自托管信号器,它运行得很好。我还有两个不同的库可以弥合你所拥有的这个鸿沟。
:一种。强>
您可以使用我的apache许可开源库FSharp.Interop.Dynamic(PCL w/ .net 4.5, WinRT, Silverlight 5.0
),使用?
实现后期绑定运算符DLR
。
open FSharp.Interop.Dynamic
...
Clients.All?yourMethodHere(some, args)
<强>乙强>
如果你想要更多打字。我还写了另一个apache许可库ImpromptuInterface(.net 4.0 or Silverlight 5.0
),它将生成一个dlr代理接口。这样您就可以定义一个与dlr对象通信的接口。
type IClientsAll =
abstract yourMethodHere : string * string -> unit
...
open ImpromptuInterface
...
let clientsAll = Clients.All.ActLike<IClientsAll>()
clientsAll.yourMethodHere(some, args)