我有一个插件架构,我需要检测所有实现ISurface<T>
任何类型接口的插件(即测试ISurface<>
)。我看到这里有几个使用 LINQ 的建议(例如这个),我想知道是否有理由支持这个:
.GetType().GetInterface("ISurface`1")
编辑:关于接口名称的硬编码,我认为如果直接从实际接口中提取名称,这些问题会得到缓解,正如 Tim 在下面提到的那样:
.GetType().GetInterface(typeof(ISurface<>).FullName)
命名空间歧义 .FullName
也应该没有问题。除了硬编码,我主要对方法本身感兴趣,因为它看起来比通过一系列类型属性检查 / LINQ 语法更短更清晰。再说一次,我不知道引擎盖下发生了什么。