回答
要檢查文件是否存在,請使用system.io.file.exists(path)
。 要加載程序集,請參閱Assembly.Load
,您可以通過加載代碼來執行代碼,然後在該程序集的類型上調用Activator.CreateInstance
。一旦你有一個類型的實例,你可以調用它的方法。
如果您沒有在程序集類型上定義的接口以方便調用,則必須使用Reflection來檢查這些類型的類型和方法。這開始變得越來越複雜,沒有一個你想要做的具體例子,我不能給你一個如何在代碼中實際做到的例子。
更新例如
只是從一個動態加載的程序集執行代碼的最簡單方法涉及到了解關於它的一些事情提前。
您應該事先知道Type
的名稱,其中包含要執行的代碼,包含代碼的方法的名稱以及所需的參數。對於這個例子,假設你總是在名爲「MyClass」的程序集中有一個類,並且你想運行的代碼放在一個名爲「Execute」的子程序中,它不帶任何參數。你可以像這樣加載和執行它。
你應該導入System.Reflection
Dim asm as Assembly = Assembly.LoadFrom("TheDll.dll") 'Load the assembly
dim t as type = asm.GetType("MyClass") 'Get a reference to the type that contains the code
dim info as MethodInfo = t.GetMethod("Execute") 'Get a reference to the method on the type that we want to call
dim instance as object = Activator.CreateInstance(t) 'Create an instance of the type to call the method on
info.Invoke(obj,nothing) 'Invoke the method with no parameters
謝謝!我試圖將黑客防禦系統(一個.dll文件)加入到我的VB應用程序中。一個簡單的.dll文件,我只需要加載它,讓它工作。而已。 – John
我已經更新了我的答案,以包含從程序集中執行代碼的「簡單」方式。 –
我剛剛在問題中注意到了你的「dllimport」標籤。如果您的問題涉及從非.NET dll執行非託管代碼,那麼我的答案將不適用。它僅用於從託管程序集執行代碼。 –
- 1. c# - 檢查文件是否存在並下載
- 2. 檢查是否加載了jar文件?
- 3. 檢查javascript文件是否被加載
- 4. 寫一個文件,並檢查文件是否存在
- 5. 檢查Excel DLL並動態加載
- 6. 檢查文件路徑是否正確,但不檢查文件是否存在
- 7. 檢查文件是否存在Try/Catch
- 8. 檢查文件是否存在
- 9. Box.com api - 「文件是否存在」檢查
- 10. Powershell檢查文件是否存在
- 11. 檢查JList中是否存在文件
- 12. Swift檢查plist文件是否存在
- 13. 如何檢查文件是否存在?
- 14. C檢查文件是否存在
- 15. 檢查文件是否存在ksh
- 16. 檢查文件是否存在[SH]
- 17. php檢查文件是否存在
- 18. 如何檢查文件是否存在?
- 19. 檢查文件是否存在
- 20. Tcl +檢查文件是否存在
- 21. 檢查文件是否存在錯誤
- 22. AS3:檢查FLV文件是否存在
- 23. 檢查索引文件是否存在
- 24. Wix檢查文件是否存在?
- 25. 檢查文件是否存在於UWP
- 26. AngularJS - 檢查文件夾是否存在
- 27. 檢查文件類型是否存在
- 28. 檢查是否存在遠程文件
- 29. 檢查文件是否存在(Perl)
- 30. VBA檢查文件是否存在
你嘗試使用非託管的DLL或管理的一個?我假設因爲dllimport標籤而不受管理,儘管VB.NET具有'Declare'語句。 – Timiz0r