是否可以将属性的使用仅限于某些接口

本文关键字:于某些 接口 属性 是否 | 更新日期: 2023-09-27 18:30:05

假设我有一个接口IAppModule,由几个类实现。是否可以编写一个只能应用于公开IAppModule的类型的自定义属性?如果是,如何?

是否可以将属性的使用仅限于某些接口

不,很遗憾,这是不可能的。

但是,当使用反射来处理属性时,可以检查修饰的类型是否是实现IAppModule接口的类。

typeof(someType).GetInterfaces().Contains(typeof(IAppModule))

它不会阻止属性的用户错误地使用它(在任何其他类中),但如果您决定采用这种方法,我建议提供非常清晰的文档,描述应该如何使用属性,并添加我上面提到的验证层。