我正在嘗試使用反射將System.__ComObject
投射到接口類型。我一直在使用Convert.ChangeType(Object,Type)
嘗試,但C#則拋出這個錯誤:在C#中通過反射投射系統.__ ComObject
System.InvalidCastException: Object must implement IConvertible.
那麼,有沒有投一般__ComObject
使用反射到其正確的類型,所以我可以再通過反射調用它的方法任何可能的方式?是的,它必須通過一種不涉及提前告訴編譯器什麼是對象類型的方法來完成!
「我試圖將System .__ ComObject強制轉換爲接口類型」 - 您能否解釋爲什麼? – 2010-01-28 02:46:59
如果你不能在你的代碼中使用它,那麼稍後使用Reflection可以做到的機率很小。一個COM對象實現定義良好的接口類型,它們在一個類型庫中定義,您必須使用Tlbimp.exe導入 – 2010-01-28 05:10:38
謝謝你們。我試圖轉換它,因爲我調用的方法返回一個對象。我從一個無類型的dlr語言中調用該方法,所以我想通過給它一個正確的類型來施放它,然後使用反射調用它。如果對象仍然是__ComObject,我不能使用object.getType。當然,我可以每次指定類型或存儲類型,但這不是問題的關鍵點:) – Josh 2010-01-28 13:56:04