Ist es möglich, etwas wie AttributeUsage die Verwendung eines Attributs auf eine spezifische Klasse (nicht nur AttributeTargets.Class - das wäre jede Klasse) zu beschränken?C# AttributUsage für bestimmte Klasse
Antwort
Nein. Es gibt nichts im Rahmen, der dies tun würde.
Der Code, der das fragliche Attribut verwendet, konnte jedoch immer überprüfen, um sicherzustellen, dass der Typ der Klasse die bestimmte Klasse (oder eine seiner Unterklassen) ist.
Attribute, an sich nichts tun - also sollte dies die gleiche Wirkung haben.
Machen Sie alle Daten im Attribut nur mit einer öffentlichen statischen Methode zugänglich, die die fragliche Klasse annimmt und prüft, ob sie das angegebene Attribut besitzt.
Eine Möglichkeit, dies zu erreichen, wenn Sie Zugriff auf die spezifische Klasse haben, wird von Marc Gravel hier beschrieben: http://marcgravell.blogspot.com/2009/06/restricting-attribute-usage.html. Grundsätzlich implementieren Sie das Attribut als eine geschützte Klasse des bestimmten Typs. Dann kann es nur von diesem Typ verwendet werden.
- 1. Deaktivieren Sie alle stylecop Warnungen für eine bestimmte C# -Klasse
- 2. Generische Einschränkungen für eine bestimmte Klasse, warum?
- 3. Filter für bestimmte Inhalte in einer Klasse
- 4. Druckfunktion für Klasse C++
- 5. prüft ein Zeiger auf eine bestimmte Klasse C++
- 6. So überschreiben Sie Log4j-Einstellungen für eine bestimmte Klasse
- 7. Option/Vielleicht Klasse für C++
- 8. Strukturierung für verschachtelte Klasse (C#)
- 9. C++: Remove == oder ein anderer Operator für bestimmte Typen
- 10. JQuery Last eine bestimmte Klasse
- 11. Ändern eines Link-Stil, nur für eine bestimmte Klasse
- 12. Kann ich alle Codeanalyse-Nachrichten für eine bestimmte Klasse unterdrücken?
- 13. Java-Klasse, die automatisch einen Port für bestimmte Strings abhört?
- 14. Wie schreibe ich HashCode-Methode für eine bestimmte Klasse?
- 15. Wie öffentliche Maven/Ivy-Repositories für eine bestimmte Klasse suchen?
- 16. Protokollieren unterschiedlicher Ebene für eine bestimmte Klasse mithilfe von Logback?
- 17. Gson serialisieren Null für bestimmte Klasse oder Feld
- 18. MyApp-Swift.h-Datei nicht gefunden. nur für eine bestimmte Klasse
- 19. Wie legt man eine bestimmte CSS-Klasse für ein Widget in gtk3 fest? (c)
- 20. Visual Studio C++ Wie finde ich den enthaltenden Namespace für eine bestimmte Klasse/Methode
- 21. C# StringReader Klasse
- 22. Wie kann mein Skript eine bestimmte Schriftart (für eine bestimmte Klasse) ändern?
- 23. Getter und Setter für Klasse in Klasse C#
- 24. Parse-Methode für die benutzerdefinierte Klasse C#
- 25. C# - Newtonsoft: Generic Klasse für Client Response
- 26. GCC C++ überschreiben -frtti für einzelne Klasse
- 27. C++ unordered_set Vergleichsfunktion für eine benutzerdefinierte Klasse
- 28. Operator C++ für Nicht-Freund Klasse Überlastung
- 29. C# separate Klasse für die Speicherung
- 30. C++, vererbte Klasse für die Erbenvorlage