C# AttributeUsage für eine Bestimmte Klasse
Ist es möglich, so etwas wie AttributeUsage zum einschränken der Verwendung von einem Attribut zu einem bestimmten Klasse (nicht nur AttributeTargets.Class - das wäre Klasse)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Es gibt nichts in den Rahmen, dies zu tun wäre.
Jedoch der code, der verwendet das Attribut in Frage, könnte immer überprüfen, um sicherzustellen, dass die Klasse der Typ ist, der bestimmte Klasse (oder einer Ihrer Unterklassen).
Attribute, die durch sich selbst nichts tun - also das sollte den gleichen Effekt haben.
Einen Weg, dies zu erreichen, wenn Sie Zugriff auf die bestimmte Klasse, ist ausführlich von Marc Kies hier: http://marcgravell.blogspot.com/2009/06/restricting-attribute-usage.html. Im Grunde implementieren Sie das Attribut als geschützte Klasse von der spezifischen Art. Dann kann es nur durch das geben.
Alle Daten in dem Attribut, das nur durch eine öffentliche statische Methode, die die Klasse, die Sie möchten, in Frage und prüft, ob das angegebene Attribut.