我有一个现有的应用程序,我希望能够拥有自己的FSI会话.虽然不是标准的FSI会话,但我希望能够使用我的应用程序中的数据预先填充FSI会话.
所以举个例子.在我的应用程序中,会发生现有流程.创建数据,然后启动FSI会话. FSI会话将预先加载已经计算的数据.
这样的事情可能吗?
最佳答案 今天最正确的答案是使用
F# Compiler Services.互动服务允许
to embed F# interactive in your application.
其他选择:
>您可以将数据格式化为有效的F#代码并将其执行到FSI中,或者将数据序列化为字符串并使用F#进行反序列化.在这种情况下,Mathias Brandewinder的文章“Using FSI to execute F# code from a .NET app”可能对您有用.
>准备一个API,提供对数据的访问.例如,基于从.NET 4.0开始可用的MemoryMappedFile.在FSI会话开始后立即添加对程序集的引用(使用FSI directive #r)并通过自定义API获取数据.
>使用WCF在两个进程之间进行通信.见answer from Phillip Trelford.