是否可以从C#应用程序(主机)的内部(以及上下文)中运行F#脚本。
对于'在上下文中',我的意思是以下应该是真的:
基本上我正在寻找类似于这个假设的API调用的API
FSharpScriptRunner.RunInContext(string script);
请帮忙。
-Matthias
答案 0 :(得分:9)
目前还没有这样的api,但你可以通过几个步骤很容易地做类似的事情: -
1)使用powerpack中提供的F#CodeDom(FSharp.Compiler.CodeDom.dll)动态编译脚本。 power pack包含用于编译单个文件的api,并允许您添加对当前应用程序的引用,从而使脚本可以访问主机应用程序的类,属性和方法。
2)在编译阶段结束时,你应该在内存中有一个动态程序集。然后,您可以使用反射从脚本中创建对象的动态实例并执行它。
答案 1 :(得分:2)
为什么不将F#代码编译成程序集,然后从C#app引用它?