我有两个界面,一个通用界面和一个非通用界面,它们具有继承关系:
public interface IGenericRelation<TParent, TChild> : IRelation
public interface IRelation
通用接口由几个动态加载的服务器控件实现,我希望枚举实现此接口的控件集合。我可以执行以下操作:
foreach (IRelation relationControl in this.uiPlhControls.Controls.OfType<IRelation)
{ ... }
但我真正想做的是能够...(涉及IT技术,具体内容需要根据上下文进行翻译)
foreach (IGenericRelation<,> relationControl in this.uiPlhControls.Controls.OfType<IGenericRelation<,>)
{ ... }
然后我就可以使用relationControl
以其提供的类型,这样我就能够访问IGenericRelation上可用的强类型属性。不幸的是,由于无法省略类型参数,这是不可能的。
有没有人知道一种枚举实现通用接口的控件的方法,以防止我不得不写几个循环而不是一个?也许可以使用反射?