c#中的函数装饰器

jtj*_*jin 22 c# python reflection decorator

Python的函数装饰器是否有C#模拟?感觉它可以使用属性和反射框架,但我没有看到在运行时替换函数的方法.

Python装饰器通常以这种方式工作:

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"
Run Code Online (Sandbox Code Playgroud)

然后调用func1和func2将导致

Before
Function 1
After
Before
Function 2
After

我们的想法是装饰器可以让我轻松地在多个功能的入口和出口点添加常见任务.

Ric*_*ber 12

我实现这一目标的方式是通过AOP框架,Castle Dynamic Proxy,Spring.NET甚至是Policy Injection Application Block.


Yur*_*ich 9

你可以使用Post Sharp来做到这一点.查看演示视频以获取说明.