我们正在使用 interop.msscriptcontrol.dll 来执行简单的 VBScript 变量代码(“Today - 1”之类的东西)。我们的应用程序是除此之外的非 COM 组件。我们已经搜索了 VBScript 的 .Net 替代品,但一直找不到。
是否有 .Net 的 VBScripting 替代品?
最佳答案
在下面的示例中,我将使 WebBrowser 控件计算 VBScript 表达式“Now - 1”并将结果嵌入到 WebBrowser 的 document.title 中,以便我可以在 C# 中获取它:
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(
(object _sender, WebBrowserDocumentCompletedEventArgs _e) =>
{
MessageBox.Show(wb.Document.Title);
}
);
wb.DocumentText = @"
<HTML>
<HEAD>
<TITLE>Hello</TITLE>
<SCRIPT language=""VBScript"">
document.title = Now - 1
</SCRIPT>
</HEAD>
<BODY/>
</HTML>";
显然,这种方法存在以下问题:
- 结果作为字符串处理
- 结果需要异步处理
- 糟糕的代码注入(inject)会导致无效的结果
- 它可能表现不佳,并可能导致您的应用出现瓶颈
我的直觉是这种方法可能比您当前使用的方法更糟糕。
关于.Net 替换 VBScript (interop.msscriptcontrol.dll) DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471880/