4

我有一个现有的应用程序,我希望能够在其中拥有自己的 FSI 会话。虽然不是标准的 FSI 会话,但我希望能够使用我的应用程序中的数据预先填充 FSI 会话。

举个例子。在我的应用程序中,发生了一个现有的过程。数据已创建,我启动 FSI 会话。FSI 会话将预加载已计算的数据。

这样的事情可能吗?

4

1 回答 1

2

今天最正确的答案是使用F# Compiler Services。交互式服务允许在您的应用程序中嵌入 F# 交互式

其他选项:

  1. 您可以将数据格式化为有效的 F# 代码并将其执行到 FSI 中,或者将数据序列化为字符串并使用 F# 反序列化。在这种情况下,Mathias Brandewinder 的文章“使用 FSI 从 .NET 应用程序执行 F# 代码”可能对您有用。
  2. 准备一个 API 来访问您的数据。例如,基于从 .NET 4.0 开始可用的MemoryMappedFile 。在 FSI 会话开始后立即添加对您的程序集的引用(使用FSI 指令#r)并通过自定义 API 获取数据。
  3. 使用 WCF 在两个进程之间进行通信。请参阅Phillip Trelford 的回答
于 2013-01-13T13:14:53.883 回答