Sna*_*ake 3 linq f# linq-expressions hangfire
要将Hangfire与F#结合使用,我需要一点帮助:
Hangfire的BackgroundJob.Enqueue
参数为System.Linq.Expressions.Expression
泛型类型Action<'T>
。
因此完整: Expression<Action<'T>>
在我这边,我有一种方法可供使用:
let doSomething () = ()
因此其签名为unit -> unit
。
Action(doSomething)
如果被叫方使用Action
,我怎么能完美传递,但没有。
那么,如何将我转换unit -> unit
为Expression<Action<'T>>
?
正如kvb在评论中所说,F#支持将lambda转换为Expression
s,就像C#一样。因此,如果您想创建一个忽略其输入并调用的表达式doSomething
,则只需:
BackgroundJob.Enqueue(fun x -> doSomething())
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
135 次 |
最近记录: |