2011-10-21 109 views
6

有沒有一種方法(反射或其他方式)以編程方式確定IList接口需要ICollection,這又需要IEnumerable?我可以以編程方式確定接口需求/依賴/繼承嗎?

我正在致力於reflection library,遇到了一個我可以使用這些信息的場景,但沒有辦法獲得它。編譯器和IDE(顯然)都知道關係,所以它必須以某種方式可用。

我希望不涉及IL或源解析的建議,這兩者都不是我用例的選項。

+0

COM對象可以做到這一點。 – VoidStar

回答

4

您可以使用Type.GetInterfaces來發現此信息。在下面的powershell

+0

Doh!謝謝,只是說明你可以多快地忘記一些東西,如果你不用它一段時間:) –

+0

其實,它似乎不需要遞歸(我得到一個具有所有必需接口的數組)。 –

+0

@MortenMertner:...它再次驗證您的第一條評論:-) – Jon

1

實例:

PS C:\> [collections.ilist].getinterfaces() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  False ICollection 
True  False IEnumerable 

C#中的等效將是:typeof(IList).GetInterfaces()

相關問題