9 Stimmen

C# AttributeUsage für bestimmte Klasse

Ist es möglich, etwas wie AttributeUsage zu haben, um die Verwendung eines Attributs auf eine spezifisch Klasse (nicht nur AttributeTargets.Class - das wäre eine beliebige Klasse)?

14voto

sgriffinusa Punkte 4133

Eine Möglichkeit, dies zu erreichen, wenn Sie Zugang zu der entsprechenden Klasse haben, wird von Marc Gravel hier beschrieben: http://marcgravell.blogspot.com/2009/06/restricting-attribute-usage.html . Im Grunde genommen implementieren Sie das Attribut als geschützte Klasse eines bestimmten Typs. Dann kann es nur von diesem Typ verwendet werden.

11voto

Reed Copsey Punkte 536986

Nein. Der Rahmen sieht nichts vor, was dies ermöglichen würde.

Allerdings ist der Code, der verwendet könnte das betreffende Attribut immer prüfen, ob der Typ der Klasse die spezifische Klasse (oder eine ihrer Unterklassen) ist.

Attribute an sich bewirken nichts - dies sollte also die gleiche Wirkung haben.

0voto

Yuriy Faktorovich Punkte 64670

Machen Sie alle Daten im Attribut nur durch eine öffentliche statische Methode zugänglich, die die betreffende Klasse aufnimmt und prüft, ob sie das angegebene Attribut hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X