Skip to main content
 首页 » 编程设计

c#c#中的函数装饰器

2023年05月25日35shihaiming

是否有 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 .