[c#] attributen: methode argumenten benaderen?

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Is het mogelijk dat een runtime attribuut methode argumenten kan benaderen?

C#:
1
2
3
[Foo(argument)]
void Bar(int argument){
}


Ik ben al een tijdje aan het struinen maar ik heb nog niets kunnen vinden.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Methode argumenten laten benaderen door een attribuut? Normaalgesproken gebruik je attributen alleen om informatie in op te slaan, niet om gedrag in vast te leggen. Dat doe je in code die de attributen opvraagt en verwerkt. En daarin kun je gewoon de parameters van de geannoteerde methode opvragen, en dus de namen ervan, lijkt me. Je kunt natuurlijk ook direct de parameter annoteren (of euh, "attributeren"? :P).

Verwijderd

marcusk schreef op dinsdag 07 december 2004 @ 22:47:
Je kunt natuurlijk ook direct de parameter annoteren (of euh, "attributeren"? :P).
offtopic:
Hehe, ze moesten en zouden een ander woord dan annotatie verzinnen he, eigenwijze pikkies. Annotatie it is!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ohhh.. mag ik ook meedoen?
Metadata :P

Verwijderd

Alarmnummer schreef op dinsdag 07 december 2004 @ 23:08:
Ohhh.. mag ik ook meedoen?
Metadata :P
Agreed, en die druk je uit in annotaties :)
Maargoed, ben beetje bezig met aspectweaving in C# en dat moet ook op annotaties gaan gebeuren dus ben beetje in IL gedoken; een annotatie is gewoon een constructor van een Attribute subclass en die heeft verder geeen enkele link met het CodeElement waar ie aan hangt dus ik denk dat het antwoord op je vraag nee is.

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 17-05 21:04

dotcode

///\00/\\

Kijk eens naar aspect oriented programing voor c#. Leuk om te cross cutten (weaven) bij je methode aanroepen. Kan je van alles mee doen. Daarnaast kan je natuurlijk ook je eigen compiler extenties schrijven. Heel leuk maar waarschijnlijk minder tedoen. Er zijn als het goed is op dit moment 3 frameworks die dit voor je zouden kunnen doen.
Pagina: 1