4
A
回答
4
4
一个办法是学习FSI的来源可以从问题的评论中提到的几个存储库中获得,然后以某种方式将其功能暴露给您的应用程序通过修改来源(改变能见度等)。这种方式显然是陡峭而痛苦的。
幸运的是,这方面的一些工作已经按照FSharp.Compiler.Service的方法完成了,所以另一种方式可能是将FSI作为标准化服务嵌入到您的应用程序中。以下presentation由Don Syme和Tomas Petricek在NYC 2013 SkillMatters日期间提供了有关嵌入FSI作为服务的详细信息。
呈现提供了一个链接Microsoft.FSharp.Compiler.Interactive.Shell
命名空间内(实验)实施FSI服务,这样的嵌入可以是如在下面的代码段一样简单:
open Microsoft.FSharp.Compiler.Interactive.Shell
.....
let fsi = FsiEvaluationSession([| "fsi.exe"; "--noninteractive"|], inStream, outStream, errStream)
.....
match fsi.EvalExpression(codeLines) with
| Some value -> value.ReflectionValue
| None -> raise (System.ArgumentException("fsi cannot evaluate expression"))
+0
此代码尚未将其添加到FSharp.Compiler.Service(AFAIK),但它在我的本地分支中可用:https://github.com/tpetricek/fsharp/tree/fs-extend。请参阅InteractiveService示例:https://github.com/tpetricek/fsharp/tree/fs-extend/samples/InteractiveService –
相关问题
- 1. F#交互式System.OutOfMemoryException
- 2. 是否可以仅使用开放源代码开发Flash应用程序?
- 3. JavaFx - 交互式排序应用程序
- 4. 是否有任何与代码交互的方式。交互式控制台
- 5. Appium for iOS应用程序是否需要应用程序的源代码?
- 6. 交互式单页应用程序
- 7. 交互式android应用程序
- 8. iOS交互式地图应用程序?
- 9. Python交互式CLI应用程序?
- 10. F#交互式shell(fsi)教程?
- 11. F#交互式终止
- 12. Appharbor上托管的应用程序的源代码是否可公开?
- 13. 是否可以查看iphones应用程序源代码?
- 14. 将代码发送到F#交互式控制台
- 15. F#为什么我不能使用:? F#交互式操作符?
- 16. 为应用程序交互创建API
- 17. 与代码内的外部应用程序交互(Golang)
- 18. 与节点中的应用程序代码交互REPL
- 19. 如何使用开放源码Android应用程序代码
- 20. 是否有用于编程快速C#代码片段的交互式shell?
- 21. iOS开源绘图应用程序源代码
- 22. 交互式Flash替代 - HTML5或本机应用程序?
- 23. 是否可以让PowerShell与控制台应用程序交互?
- 24. ClickOnce应用程序是否可以与网页进行交互
- 25. 如何从交互式shell中访问调用源代码
- 26. 开源的交互式地图
- 27. Groovy是否有源代码格式化程序?
- 28. 从交互式shell调用d代码
- 29. 是否可以将交互式元素加载到iOS应用程序中?
- 30. Adobe Flex是否开放源代码?
是的,这是。它的来源是在GitHub上:https://github.com/fsharp/fsharp/tree/master/src/fsharp/fsi –
不知道为什么这会被搁置,我还会问这个问题? – AwkwardCoder
Ramon给出的链接的另一种替代方法是[FSharp.Compiler.Service](https://github.com/fsharp/FSharp.Compiler.Service),该方法公开了类似于您的场景中所需的额外功能。 –