【发布时间】:2014-08-26 21:29:41
【问题描述】:
我阅读了this answer,它解释了如何使用 C# 中的 JScript Eval 函数。似乎编译JsMath.js 文件的唯一方法是通过命令行。我想在 Visual Studio 2010 中创建一个 C# 类库项目,并将 JsMath.js 文件放在这个项目中,以便在我构建解决方案时也编译这个文件。
【问题讨论】:
标签: c# javascript .net visual-studio-2010
我阅读了this answer,它解释了如何使用 C# 中的 JScript Eval 函数。似乎编译JsMath.js 文件的唯一方法是通过命令行。我想在 Visual Studio 2010 中创建一个 C# 类库项目,并将 JsMath.js 文件放在这个项目中,以便在我构建解决方案时也编译这个文件。
【问题讨论】:
标签: c# javascript .net visual-studio-2010
在 Visual Studio 中将文件标记为嵌入式资源。然后你可以在你的代码中访问它:
Assembly.GetExecutingAssembly().GetManifestResourceStream("JsMath.js");
然后您可以使用JScriptcodeProvider 将 js 文件动态编译为程序集并通过反射加载它。我不确定这是否比将 JsMath 预先构建为程序集并将其作为参考加载到您的库中更好。
var compiler = new Microsoft.JScript.JScriptCodeProvider();
var parameters = new CompilerParameters(new [] {"/t:library"});
var result = compiler.CompileAssemblyFromSource(parameters, jsMathSource);
var asembly = result.Assembly;
//Load the assembly method via reflection
我从这个post得到的编译位
【讨论】:
GetManifestResourceStream方法返回一个Stream对象,我怎么能访问JsMath.js文件的Eval方法呢?