【发布时间】:2012-02-05 14:06:58
【问题描述】:
我需要创建一些自定义属性,用于我的反射函数。
这是我所看到的用例:
- 用户创建了一些类并用我的特殊属性标记它(例如[ImportantAttribute])
- 然后用户使用我的库中的函数执行某些操作。这些函数找到具有 [ImportantAttribute] 的类并对其进行处理
主要问题是我的库中的函数期望,标记有 [ImportantAttribute] 的类继承我的接口(例如 IMyInterface)
有没有办法让用户知道他是否用 [ImportantAttribute] 标记了他的类并且在编译期间而不是在运行时忘记继承 IMyInterface。以某种方式指定此属性仅适用于继承 IMyInterface 的类。
与属性和字段的属性相同。
【问题讨论】:
-
为什么用户不能从 IMyInterface 显式继承创建他的类?即,“ImportantAttribute”给聚会带来了什么?
-
@Garry Vass 这个属性告诉我的函数,它必须聚合标记的类。用户可以创建一些继承 IMyInterface 的类,并且他不希望我的函数聚合它。但是所有标有 ImportantAttribute 的类都必须实现 IMyInterface
标签: c# reflection attributes custom-attributes