2012-04-25 35 views
0

我正嘗試在C#應用程序中使用舊的VB庫。無法在C#應用程序中從VB庫轉換集合屬性

該文庫有幾個類,一個特別有一個方法返回本身例如一個實例:Posts post = new Posts().GetLast();

的帖子類有一個屬性註釋,實際上是對象類型。在VB中,我可以像通過Microsoft.VisualBasic.Collection那樣迭代通過Comments屬性,但是在C#中我無法將該屬性強制轉換爲任何東西。我嘗試導入Microsoft.VisualBasic命名空間,並將類型轉換爲Collection,但它不起作用,返回一個錯誤,表示System .__ ComObject必須轉換爲庫中的特定接口。

集合內有實現接口IComments的對象,我不能轉換到接口,因爲它是接口的集合。

我也嘗試投射到ICollection(由Microsoft.VisualBasic.Collection執行的界面),但沒有肯定的結果。

如何解決這個問題的任何想法,我出這個問題的唯一方法是通過改變C#應用程序到VB一個(並不難,但還是那我寧願避免的事情)

+0

你是否回答了這個問題? - > http://stackoverflow.com/questions/2151861/casting-a-system-comobject-in-c-sharp-via-reflection – rt2800 2012-04-25 08:42:05

+0

我確實看到了這個具體的答案,如果我理解正確,這意味着一個如果我沒有控制類庫(我無法在對象上實現任何接口),則類型轉換是不可能的? – Atzoya 2012-04-25 08:52:52

回答

0

通過嘗試所有我能想到的接口,使用as運算符並比較結果null,我發現該屬性可以被轉換爲IEnumerable(logicaly Microsoft.VisualBasic.Collection implements ICollectionICollection implements IEnumerable)。

相關問題