我有一个类似以下情况的问题:
enum Header
{
Sync,
[OldProtocol] Keepalive,
Ping,
[OldProtocol] Auth,
[OldProtocol] LoginData
//...
}
我需要获取定义了OldProtocolAttribute
的元素数组。我注意到Attribute.IsDefined()
方法和它的重载似乎不支持这种情况。
我的问题是:
- 有没有一种方法可以在解决方案的任何部分中不使用
typeof(Header).GetField()
来解决这个问题? - 如果没有,最优解决方法是什么?
IsDefined
可能会缓存,但如果 OP 经常需要整个字段数组,那么值得缓存。 - Jon Skeet