我在F#
中定义了一个界面type IConnect =
abstract Update: seq<DataType> -> Async<bool>
我希望同一appdomain中的其他应用程序能够实现它,这样我就可以在任何实现接口的地方调用Update(我在TinyIoC容器中收集实现)。返回类型Async<bool>
可以指示更新是否成功而无需等待。我可以并行更新应用程序。
其他应用程序是用c#编写的,当我开始编写引用(模拟)实现时,我意识到这需要任何实现者使用FSharpAsync
类型,这种类型不是很漂亮。
那么,我如何定义接口以便在c#中轻松实现并保持异步方面?
答案 0 :(得分:3)
使用Task或IObservable。您可以在async
个工作流和Task<T>
quite easily之间进行转换,这是一种使用C#或大多数.Net语言的简单类型。
type IConnect = abstract Update: seq<DataType> -> Task<bool>