【发布时间】:2010-09-09 05:24:11
【问题描述】:
我想从 C# 程序集中执行 JavaScript 代码,并将 JavaScript 代码的结果返回给调用 C# 代码。
更容易定义我不想做的事情:
我不想从我的代码后面调用网页上的 JavaScript 函数。
我没有尝试加载 WebBrowser 控件。
我不想让 JavaScript 对服务器执行 AJAX 调用。
我想做的是用 JavaScript 编写单元测试,然后单元测试输出 JSON,即使是纯文本也可以。然后我想要一个通用的 C# 类/可执行文件,它可以加载包含 JS 的文件、运行 JS 单元测试、废弃/加载结果,并在构建后任务期间返回带有详细信息的通过/失败。
我认为使用旧的 ActiveX ScriptControl 是可能的,但似乎应该有一种 .NET 方式来做到这一点,而无需使用 SilverLight、DLR 或其他任何尚未发布的东西。有人有什么想法吗?
namespace Microsoft.JScript.Vsa
{
[Obsolete("There is no replacement for this feature. " +
"Please see the ICodeCompiler documentation for additional help. " +
"http://go.microsoft.com/fwlink/?linkid=14202")]
澄清: 我们对使用 JSUnit 框架用 JavaScript 编写的 JavaScript 函数进行了单元测试。现在,在我们的构建过程中,我们必须手动加载一个网页并单击一个按钮以确保所有 JavaScript 单元测试都通过。我希望能够在我们的自动化 C# 单元测试运行时在构建后过程中执行测试,并在 C# 单元测试旁边报告成功/失败,并将它们用作是否构建的指标坏了。
【问题讨论】:
-
很遗憾,DLR 的 Javascript 实现被放弃了,我相信它被称为 JScriptX,或者这将是与 c# 4.0 动态特性的一个很好的干净集成。
标签: c# .net javascript unit-testing codedom