是否有 Python 的函数装饰器的 C# 类比?感觉它对属性和反射框架是可行的,但我没有看到在运行时替换函数的方法。
Python decorators通常以这种方式工作:
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"
调用 func1 和 func2 会导致
Before Function 1 After Before Function 2 After
这个想法是装饰器可以让我在多个函数的入口和导出处轻松添加常用任务。
请您参考如下方法:
我实现这一点的方法是通过AOP frameworks喜欢 Castle Dynamic Proxy , Spring.NET甚至是 Policy Injection Application Block .