2012-05-06 100 views
3

我們正在使用interop.msscriptcontrol.dll來執行簡單的VBScript變量代碼(「Today - 1」類的東西)。除此之外,我們的應用程序是非COM組件。我們已經搜索了VBScript的.Net替換,但我們一直無法找到它。.Net替換爲VBScript(interop.msscriptcontrol.dll)DLL

是否有VBScripting替代.Net?

+1

可能重複:http://stackoverflow.com/questions/320814/dotnet-version-of-windows -scripting-host –

+0

另一個重複:http://stackoverflow.com/questions/200422/how-to-call-a-vbscript-file-in-ac-sharp-application –

+0

不,這些都不是我所知問。我想要一種在.Net中使用VBScript而不使用COM的方法。通常不是一種新的腳本編寫方式。 –

回答

2

在下面的例子中,我將WebBrowser控件評估VBScript中表達「現在 - 1」和嵌入結果在Web瀏覽器的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>"; 

,這種方法患有:

  • 結果作爲字符串處理
  • 結果需要異步處理
  • 差ç頌歌注射可導致無效的結果
  • 它可能不執行,並可能導致您的應用程序創建一個瓶頸

我的直覺是這種方法可能比您目前使用的方法更糟糕。

+0

對我來說,這是一個比使用interop.msscriptcontrol.dll更糟的方法,但是,你給了我一個很好的外部答案,所以我爲你+1了。我將來可能會用到它。 –