如何在F#中定义owin中间件类?

如何在F#中定义owin中间件类?,f#,owin,F#,Owin,我试图在F#中创建下面的示例类(取自) 公共类日志中间件 { 私有AppFunc-next; 公共日志中间件(Func next) { this.next=next; } 公共异步任务调用(IDictionary环境) { Console.WriteLine(“开始请求”); 等待下一步。调用(环境); Console.WriteLine(“结束请求”); } } 然而,我正在努力在典型的.NET类型和典型的F#类型之间进行转换,并使用F#async工作流来实现C#wait所发生的事情。F#a

我试图在F#中创建下面的示例类(取自)

公共类日志中间件
{
私有AppFunc-next;
公共日志中间件(Func next)
{
this.next=next;
}
公共异步任务调用(IDictionary环境)
{
Console.WriteLine(“开始请求”);
等待下一步。调用(环境);
Console.WriteLine(“结束请求”);
}
}
然而,我正在努力在典型的.NET类型和典型的F#类型之间进行转换,并使用F#async工作流来实现C#wait所发生的事情。

F#async工作流和.NET任务的最大(当前)问题是,没有直接类比没有返回类型的
任务

从中,我将使用此函数绑定来等待没有返回值的任务:

让awaitTask=Async.AwaitIAsyncResult>>Async.Ignore
这样,您就可以直接将示例类转换为:

类型fsharp中间件(下一步:Func)=
成员this.Invoke(环境:IDictionary):任务=
异步的{
printfn“开始请求”
做
awaitTask Async.StartAsk:>任务

如果你至少发布一些F#代码,你会在这里得到更好的帮助。使用谷歌搜索dyfrig tooThis正是我要找的。谢谢!希望它也能帮助其他人在F#water中摸爬滚打。