首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内存(而不是文件)上调用fsi

在内存(而不是文件)上调用fsi
EN

Stack Overflow用户
提问于 2013-11-15 11:19:05
回答 1查看 162关注 0票数 1

假设我们有这样一个fsi脚本:

代码语言:javascript
复制
#r "System.Core.dll"
let script = "Console.WriteLine(\"Hello, World!\")"
// fsi script ???

我们可以使用#load在文件上调用fsi,但是是否可以在内存中的字符串上调用fsi而不首先将其写入文件?

用例是一个API兼容性测试器:给定一个dll,我想创建一个调用其所有公共API的脚本,并根据同一个dll的不同版本编译该脚本。

我总是可以将生成的脚本写到磁盘上,但是如果我可以直接运行它,它就会干净得多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-15 16:09:46

您在问题中概述的任务可以使用Microsoft.FSharp.Compiler.Interactive命名空间中提供的工具来执行,特别是在FsiEvaluationSession of Microsoft.FSharp.Compiler.Interactive.Shell类型的帮助下。

这个要旨是由赖安·莱利编写的,它使用瘦包装类型FSharpEngine over FsiEvaluationSession演示了您的场景,使对fsi的编程使用非常方便,如:

代码语言:javascript
复制
....
let engine = new FSharpEngine()
engine.Execute("<some F# code>") |> processOutput
....
engine.Dispose()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19999876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档