如何定义一个可以在c#中实现的异步f#接口
本文关键字:实现 异步 接口 定义 何定义 一个 | 更新日期: 2023-09-27 18:17:17
我在f#中定义了一个接口
type IConnect =
abstract Update: seq<DataType> -> Async<bool>
我希望在同一应用域的其他应用程序来实现它,这样我就可以在任何实现接口的应用程序上调用Update(我在TinyIoC容器中收集实现)。返回类型Async<bool>
可以指示更新是否成功,而不必等待它。我可以并行更新应用程序。
其他应用程序都是用c#编写的,当我开始编写引用(模拟)实现时,我意识到这将要求任何实现者使用FSharpAsync
类型,这不是很漂亮。
使用Task或者IObservable。你可以很容易地在async
工作流和Task<T>
之间转换,它是一个简单的类型,可以在c#或大多数。net语言中使用。
type IConnect = abstract Update: seq<DataType> -> Task<bool>