-1
有沒有在C#中連接到COM對象,並使用COM對象的內容,如在Builder C++:C#與COM對象連接
CreateOleObject("some.someClass");
(OLE C#似乎是不支持的,除非OLEDB,但在我看來這不是目前的情況) 我知道我可以添加一個鏈接 - > COM - >尋找一個註冊的COM對象。
但它不適合。
有沒有在C#中連接到COM對象,並使用COM對象的內容,如在Builder C++:C#與COM對象連接
CreateOleObject("some.someClass");
(OLE C#似乎是不支持的,除非OLEDB,但在我看來這不是目前的情況) 我知道我可以添加一個鏈接 - > COM - >尋找一個註冊的COM對象。
但它不適合。
通常,如果您需要在C#中使用COM對象,則需要將其添加爲Reference,然後選擇註冊的類型庫。這將生成一個Interop程序集,之後您可以像使用其他C#類一樣使用COM對象。
或者,您也可以手動運行.NET實用工具tlbimp
,它具有大致相同的效果,但是可以給您稍微更多的控制權。
如果您確實需要動態創建對象,而無需提前知道類型,則可以使用dynamic
關鍵字和Activator
類創建一個類型的動態實例。該代碼是這樣:
var comType = Type.GetTypeFromProgID("some.someClass");
dynamic obj = Activator.CreateInstance(comType);
這將推遲obj
所有類型的檢查,直到運行時,表現得就像VBA會。
搜索字詞是[COM interop](https://www.bing.com/search?q=c%23+com+interop)。 –