.NET中的自定义属性在装饰方法之前和之后执行代码?

时间:2010-09-29 19:03:53

标签: .net events attributes

理想情况下,我想找到一种方法来做:

[MyCustomAttribute()]
public void MyMethod()
{
    Debug.Write("B");
}

public MyCustomAttribute : Attribute
{
    public void OnBegin()
    {
        Debug.Write("A");   
    }

    public void OnEnd()
    {
        Debug.Write("C");
    }
}

哪个会写:

  

ABC

当MyMethod()被解雇时。任何想法,如果这实际上可以做到? ActionFilter属性看起来与此想法类似,但它仅适用于MVC请求。

1 个答案:

答案 0 :(得分:3)

看看PostSharp - 它几乎就是这样。

它是一个后处理器 - 它接受您编译的程序集,查找属性并将代码注入到修饰的方法中。