Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C应用程序上下文中运行F#脚本_C#_F#_F# Scripting - Fatal编程技术网

C# 如何在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) 使用

从C#应用程序(主机)的内部(和上下文)运行F#脚本是否容易

“在上下文中”指的是以下内容:

  • 脚本的执行没有单独的过程
  • 从F#脚本访问宿主应用程序的静态内容(类、属性、方法)
基本上,我正在寻找一个类似于这个假设API调用的API

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等