我有一個場景,我希望有n個類可以查看相同的數據並確定是否需要完成任何工作。工作由團隊完成,多個團隊可以同時處理數據。我正在考慮爲每個將實施CreateWork界面的團隊創建一個班級。所有CreateWork類都必須有發言權。目前只有少數,但未來還會有更多。如何在.net中查找程序集中特定接口的所有類.net
我的計劃解決方案
For each CreateWork class in assembly
class.CheckAndCreateWork(dataIn,returnedCollectionOfWorkToBeDone)
Next
須藤代碼是否有可能在一個優雅的方式做到這一點的一種設計模式?看起來有點凌亂來循環組件中的每個類。
乾杯
+1。我*相信* IsAssignableFrom'比GetInterfaces()慢,Contains(type)'(只適用於接口)。但我可能是錯的。 – 2009-11-24 10:14:14
我通常更喜歡IsAssignableFrom,因爲它涵蓋的範圍不僅僅是接口實現,例如它可以告訴您A類是否繼承B類。 – Konamiman 2009-11-24 10:21:07
IsAssignableFrom是要走的路,GetInterfaces返回僅在當前類型上定義的接口,但不檢查接口繼承(IBar:IFoo)。通過發佈所有類型的接口鏈,csc簡化了這一點,但並非所有編譯器都這樣做。 – 2009-11-24 10:21:40