有没有一种方法可以在 F# 中访问类似于 C# 动态的 DLR 对象(例如 DynamicObject 子类实例)成员(属性和方法)?
最佳答案
现在 nuget 上有一个模块使用 dlr 来实现动态运算符。 FSharp.Interop.Dynamic
与现有的许多代码片段相比,它有几个优点。
- 它使用的性能 Dynamitey对于实现缓存的 dlr 调用,它是一个 PCL 库
- 处理返回 void 的方法,如果您不丢弃这些方法的结果,您将获得绑定(bind)异常。
- dlr 会自动处理函数调用委托(delegate)返回的情况,这也将允许您对 FSharpFunc 执行相同的操作
添加一个 !?前缀运算符,用于处理在运行时直接调用您没有类型的动态对象和函数。
它是开源的,Apache license,你可以看看implementation和基本单元测试example cases .
关于c# - F# 动态对象访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150087/