C# 如何在C应用程序上下文中运行F#脚本
从C#应用程序(主机)的内部(和上下文)运行F#脚本是否容易 “在上下文中”指的是以下内容:C# 如何在C应用程序上下文中运行F#脚本,c#,f#,f#-scripting,C#,F#,F# Scripting,从C#应用程序(主机)的内部(和上下文)运行F#脚本是否容易 “在上下文中”指的是以下内容: 脚本的执行没有单独的过程 从F#脚本访问宿主应用程序的静态内容(类、属性、方法) 基本上,我正在寻找一个类似于这个假设API调用的API FSharpScriptRunner.RunInContext(string script); 请帮忙 -Matthias为什么不将F代码编译成一个程序集,然后从C应用程序中引用它呢?目前还没有这样的api,但您可以通过几个步骤轻松完成类似的操作:- 1) 使用
- 脚本的执行没有单独的过程
- 从F#脚本访问宿主应用程序的静态内容(类、属性、方法)
FSharpScriptRunner.RunInContext(string script);
请帮忙
-Matthias为什么不将F代码编译成一个程序集,然后从C应用程序中引用它呢?目前还没有这样的api,但您可以通过几个步骤轻松完成类似的操作:- 1) 使用powerpack中提供的F#CodeDom(FSharp.Compiler.CodeDom.dll)动态编译脚本。power pack包含用于编译单个文件的API,并允许您向当前应用程序添加引用,从而使脚本能够访问宿主应用程序的类、属性和方法
2) 在编译阶段结束时,内存中应该有一个动态程序集。然后,您可以使用反射从脚本创建对象的动态实例并执行它。应该在应用程序中输入和编辑F#代码。您可以这样做,但请记住F#不是脚本语言,而是静态类型的编译语言。您提到的用例更适合DLR基础语言,如IronJS、IronPython等