Laden...

Custom Attributes: Zugriff auf Instanz einer Klasse auf die es angewendet wurde

Erstellt von ltrader vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.014 Views
L
ltrader Themenstarter:in
60 Beiträge seit 2008
vor 14 Jahren
Custom Attributes: Zugriff auf Instanz einer Klasse auf die es angewendet wurde

Hallo,

Wenn ich ein CustomAttrbute schreibe und dieses auf eine Klasse oder Methode anwende kann ich wunderbar per Reflection die MemberInfos auslesen, auf die das Attribut angewendet wurde.

Besteht auch die Möglichkeit vom Code des Attributes aus Zugriff auf das MemberInfo Objekt zu bekommen, auf das eine Instanz des Attributes angewendet wurde? Wenn ja wie stelle ich das an?

Viele Grüße
ltrader

Real programers do not comment their code.
It is hard to write and it should be hard to understand!

5.742 Beiträge seit 2007
vor 14 Jahren

Hallo ltrader,

Wenn ja wie stelle ich das an?

da wirst du IMHO wohl oder übel alle Member aller Klassen durchgehen müssen (lässt sich zumindest wunderbar parallelisieren).

Eventuell musst du das aber nicht auf dem PC des Users machen, sondern kannst das vorher einmal daraus eine XML-Datei generieren und diese dann einlesen.

L
ltrader Themenstarter:in
60 Beiträge seit 2008
vor 14 Jahren

Ich fürchte damit ist mir nicht geholfen - vielleicht habe ich mich auch nicht optimal ausgedrückt.

Was ich benötige ist eine Möglichkeit innerhalb der Instanz des Attributes eine Referenz auf das entsprechende Objekt oder MemberInfo Objekt zu ergattern.

Intention ist es innerhalb des Attributes mitzubekommen wenn die entsprechende Methode auf die as Attribut angewendet wird aufgerufen wird. So könnte ich deklatativ

  1. ein Logging betreiben
  2. Informationen auswerten, die den Aufruf der Methode betreffen.

Eine Alternative könnte sein, eine Art Listener an das entsprechende MethodInfo Objekt zu hängen, aber wie und ob das geht weiss ich nicht..

Grüße

Real programers do not comment their code.
It is hard to write and it should be hard to understand!

5.742 Beiträge seit 2007
vor 14 Jahren

Das geht nicht so ohne Weiteres.

Dazu braucht man ein Framwork (genauer gesagt einen Rewriter) zur Aspektorientierten Programmierung (AOP).

Suche mal nach "PostSharp" bzw. siehe [Artikel] Attribute zur Prüfung von Properties verwenden

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo ltrader,

Was ich benötige ist eine Möglichkeit innerhalb der Instanz des Attributes eine Referenz auf das entsprechende Objekt oder MemberInfo Objekt zu ergattern.

das geht aber standardmäßig leider nicht. Genauso wenig wie es einen standardmäßigen (direkten) Weg gibt, innerhalb der Codes einer Property oder einer Methode an deren Attribute zu kommen. Sprich das Hin- und Her zwischen Attributen und dem attributierten Member wird vom Framework nicht wirklich unterstützt.

Natürlich kann man sich selber was basteln, aber das ist dann eben auch gebastelt.

herbivore