2017-04-06 131 views
1

我已經在C#中編寫了一個類庫(.dll),這是從第三方.exe調用的。 .exe在我的.dll中調用一個方法,將COM對象傳遞給我的方法。由於各種原因,我無法訪問此COM對象的等效類定義,但我可以使用這個方便的DispatchUtility class tool來發現其公共方法和屬性。我希望創建一個extern class的定義,所以我可以訪問這些成員,但正如我發現的那樣,C#不允許這樣做。從COM對象訪問類

訪問這些班級成員的最佳方式是什麼?

+0

你的代詞和thises和thats都混在一起,很難理解你在問什麼。我認爲你需要做的只是獲得COM對象的IDispatch接口並從中調用Invoke。看看漢斯在這篇文章中回答:http://stackoverflow.com/questions/8068449/calling-a-member-of-idispatch-com-interface-from-c-sharp –

+0

@JoeWillcoxson我很樂意編輯澄清 - 什麼是第一夫婦的事情是模糊的?我也會看看這個問答。 – Conrad

回答

0

如果您知道方法名稱和參數類型,則可以使用dynamic

dynamic o = theComObject; 
o.SomeMethod(arg1, arg2, arg3); 
var v = o.SomeProperty;