假设我有一个接口IAppModule
,由几个类实现。是否可以编写只能应用于公开IAppModule
的类型的自定义属性?如果是这样,怎么样?
答案 0 :(得分:8)
不,不幸的是,这是不可能的。
但是,在使用反射处理属性时,可以检查修饰类型是否是实现IAppModule接口的类。
typeof(someType).GetInterfaces().Contains(typeof(IAppModule))
它不会阻止属性的用户错误地使用它(在任何其他类中),但是如果您决定采用这种方法,我建议提供非常清晰的文档来描述如何使用该属性并添加我上面提到的验证层。