我有一个场景,我希望有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