Mam sytuację, jak następuje:C# - Sprawdzenie istnienia atrybutu na ENUM jest elementem
enum Header
{
Sync,
[OldProtocol] Keepalive,
Ping,
[OldProtocol] Auth,
[OldProtocol] LoginData
//...
}
muszę uzyskać szereg elementów, na których OldProtocolAttribute
jest zdefiniowana. Zauważyłem, że metoda Attribute.IsDefined()
i jej przeciążenia najwyraźniej nie obsługują tego rodzaju sytuacji.
Moje pytanie brzmi:
- Czy istnieje sposób, aby rozwiązać problem bez użycia w dowolnej części roztworu
typeof(Header).GetField()
? - Jeśli nie, jaki jest najbardziej optymalny sposób rozwiązania tego problemu?
Doskonale, dzięki! – user1098567
@Jon Skeet, brakuje ci ")" po ".Where (field => field.IsDefined (attributeType, false)" - ten kod się nie skompiluje –
@ nucleicsweet: Naprawiono, dziękuję. –