Gibt es ein C# -Analog für Python-Funktion Dekoratoren? Es fühlt sich an, als wäre es mit Attributen und dem Reflektionsrahmen machbar, aber ich sehe keine Möglichkeit, Funktionen zur Laufzeit zu ersetzen.Funktion Dekorierer in C#
Python decorators arbeiten in der Regel auf diese Weise:
class decorator(obj):
def __init__(self, f):
self.f = f
def __call__(self, *args, **kwargs):
print "Before"
self.f()
print "After"
@decorator
def func1():
print "Function 1"
@decorator
def func2():
print "Function 2"
Aufruf func1 und func2 würde dann in
Before Function 1 After Before Function 2 After
Die Idee ist, dass Dekorateure lassen mich einfach gemeinsame Aufgaben an den Ein- und Ausstiegspunkte hinzufügen von mehreren Funktionen.
Ich fand dies ein interessantes Intro in das Warum im Gegensatz zu dem was. http://python.about.com/gi/dynamic/offsite.htm?zi=1/XJ&sdn=python&cdn=compute&tm=12&f=10&su=p284.9.336.ip_p504.1.336.ip_&tt=29&bt=0&bts=1&zu=http % 3A // www.python.org/doc/ 2.4.4/whatsnew/node6.html – ShuggyCoUk
Hmm, ich hoffte auf etwas, das bereits in die Sprache integriert ist, aber aus den Antworten, die es zu sehen gibt, gibt es keinen direkten Weg ohne ein neues Framework hinzuzufügen. Mein Projekt ist sehr klein, also ist es wahrscheinlich zu viel Aufwand, es auf diese Weise zu tun. – jtjin