我想我可以編譯一個C#DLL,然後將其作爲一個COM對象公開,以便它可以從VBscript創建對象。我只是不確定這樣做的步驟...如何從vbScript調用.NET代碼(C#/ vb.net)?
5
A
回答
6
這樣做可能非常簡單。但是有很多地方並不那麼簡單。它很大程度上取決於你的班級需要做什麼以及你打算如何部署它。
一些問題需要考慮:
- 你的類必須有一個參數的構造函數。
- 它不能暴露靜態方法。
- 是否將您的COM DLL部署到全局程序集緩存好?如果沒有,你將不得不給它一個強大的名字,並使用
regasm /codebase
註冊。 - 你關心什麼GUID標識類和它的接口?如果不是,你可以讓
regasm
分配它們,但每次(和每個地方)課程都會被註冊。如果您需要GUID在整個安裝過程中保持不變,則需要使用Guid
屬性標記成員。 - 你打算在.NET和COM之間使用數據類型的默認封送處理嗎?如果不是,則需要使用
MarshalAs
屬性標記屬性和方法。 - 對你來說什麼樣的COM接口你的類暴露是否重要?如果是這樣,你將需要處理
InterfaceType
屬性。 - 您的課程是否需要提高或迴應事件?如果是這樣,那麼對你如何設計你的類接口有影響。
這裏有一篇關於COM互操作和.Net here的非常好的(如果過期的)文章。 (文章中談到的很多事情,比如生成類型庫,現在都會自動爲您處理。)Microsoft's documentation是最新的,但不是非常詳細。
5
您應該使用regasm
實用程序來註冊程序集(就像使用COM服務器做regsvr32
一樣)。然後你可以從COM中使用它。確保它已安裝在GAC中。這些東西應該有從COM可用的[ComVisible(true)]
。
1
您可以選擇每個項目的「COM Accessible」選項。那麼,當然,你必須註冊程序集才能使用它,但就是這樣。
我不得不去打獵了一下,找到它的C#(我已經習慣了VB.Net),但你可以找到通過雙擊在Solution Explorer中的文件夾Properties
選項,選擇Application
選項卡,然後單擊Assembly Information...
按鈕。
相關問題
- 1. 從vb.net調用javascript代碼
- 2. 如何調用VBScript中的非特異性功能從VB.net代碼
- 3. 從C#代碼調用.net DLL的
- 4. 如何將.Net代碼轉換爲vbscript?
- 5. 如何vb.net/c#或VBScript
- 6. 如何從vbscript文件中調用.net dll時如何調用
- 7. 從.Net調用FoxPro代碼
- 8. 將VBscript轉換爲VB.Net或C#.net
- 9. 將vbscript轉換爲c#.net/VB.NET?
- 10. 如何從VBScript調用C#DLL函數
- 11. 從C#代碼調用Babel .Net混淆器代碼
- 12. 如何使用VBScript代碼
- 13. 調用C/C++代碼從C#.NET應用程序
- 14. 轉換vb.net代碼轉換爲C#.NET
- 15. 無法從VBScript調用C#代碼 - 的ActiveX錯誤
- 16. 從VBScript中調用VB.net函數
- 17. 如何從C#.NET代碼生成JS
- 18. 從C++調用c代碼
- 19. 如何從C#代碼調用URL url
- 20. 如何從Java調用Pro * C代碼?
- 21. 如何從JavaScript調用C#代碼
- 22. 如何從C#MVC調用NodeJs代碼?
- 23. 如何從phonegap調用C++代碼
- 24. 如何從Matlab調用Vbscript
- 25. 如何調用從VBScript
- 26. 展望調用從VB.Net代碼參數
- 27. 從Excel中調用VB.NET代碼
- 28. 從64位.NET代碼調試64位C++ - 如何?
- 29. 如何從JScript執行VBScript代碼?
- 30. VB.NET代碼比C#代碼