假设我有一个接口(interface) IAppModule
,由几个类实现。是否可以编写一个只能应用于公开 IAppModule
的类型的自定义属性?如果是,怎么办?
最佳答案
不,很遗憾,这是不可能的。
但是,当使用反射处理属性时,您可以检查装饰类型是否是实现 IAppModule 接口(interface)的类。
typeof(someType).GetInterfaces().Contains(typeof(IAppModule))
它不会阻止您的属性的用户错误地使用它(在任何其他类中),但是如果您决定采用这种方法,我建议您提供非常清晰的文档来描述应该如何使用该属性并添加我上面提到的验证层。
关于c# - 是否可以将属性的使用限制在某些接口(interface)上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593150/