将数据共享到嵌入式FSI会话中

时间:2013-01-12 01:15:45

标签: f#

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

所以举个例子。在我的应用程序中,会发生现有流程。创建数据,然后启动FSI会话。 FSI会话将预先加载已经计算过的数据。

这样的事情可能吗?

1 个答案:

答案 0 :(得分:2)

今天最正确的答案是使用F# Compiler Services。互动服务允许to embed F# interactive in your application

其他选择:

  1. 您可以将数据格式化为有效的F#代码并将其执行到FSI中,或者将数据序列化为字符串并使用F#进行反序列化。在这种情况下,Mathias Brandewinder的文章“Using FSI to execute F# code from a .NET app”可能对您有用。
  2. 准备一个可以访问您数据的API。例如,基于从.NET 4.0开始可用的MemoryMappedFile。在FSI会话开始后立即添加对程序集的引用(使用FSI directive #r)并通过自定义API获取数据。
  3. 使用WCF在两个进程之间进行通信。见answer from Phillip Trelford