Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# 在ASP.NET MVC控制器中使用带有注入依赖项的脚本_C#_Asp.net_Asp.net Mvc_Roslyn_Scriptcs - Fatal编程技术网

C# 在ASP.NET MVC控制器中使用带有注入依赖项的脚本

C# 在ASP.NET MVC控制器中使用带有注入依赖项的脚本,c#,asp.net,asp.net-mvc,roslyn,scriptcs,C#,Asp.net,Asp.net Mvc,Roslyn,Scriptcs,我正在尝试向ASP.NET MVC应用程序添加脚本支持。我有一个ScriptServices灵感来源于 在我的控制器中,我有一个简单的工作原理,如下所示 var host = new ScriptCsHost(); host.Root.Executor.Initialize(new[] { "System.Web"}, new IScriptPack[0]); var code = "var x=5; x==5"; var result = host.Root.Executor.Execut

我正在尝试向ASP.NET MVC应用程序添加脚本支持。我有一个
ScriptServices
灵感来源于

在我的控制器中,我有一个简单的工作原理,如下所示

var host = new ScriptCsHost();
host.Root.Executor.Initialize(new[] { "System.Web"}, new IScriptPack[0]);

var code = "var x=5; x==5";

var result = host.Root.Executor.ExecuteScript(code, new string[0]);
host.Root.Executor.Terminate();

return Content(result.ReturnValue.ToString());

这个很好用。我希望执行的
code
能够使用注入控制器的一些存储库(例如
private readonly customerpositionory\u customerRepository
)。有没有办法做到这一点?

使用“普通”Roslyn而不是脚本解决。在Roslyn中,您可以向会话添加任何对象。

根据我收集的信息,
scriptcs
允许您输入一个代码字符串,该字符串被编译到单独的程序集中并运行。为了从调用该代码的代码传递对该代码的对象引用,您需要在运行的代码和生成的代码之间进行一些互操作,或者
ScriptCsHost
需要允许在启动时注入任意变量。
scriptcs
有文档吗?你能给出一个你需要的代码示例吗?如果你使用这个脚本构建,你也可以。这是核心,看公关