3

可能重复:
通过属性的 C# 包装方法

我想实现这样的功能:

[Wrap]
public void Foo()
{           
    /* foo logic */
}

其中[Wrap]attribute是一个属性,它将函数逻辑包装在一些外部代码中——例如让它成为一个事务范围:

using(var scope = new TransactionScope())
{
    /* foo logic */
    scope.Complete();
}

这样的属性怎么写?

4

1 回答 1

3

这是一个面向方面编程的例子,其中Wrap一个方面是。

C# 没有对面向方面编程的内置支持,但有一些插件(例如postsharp)支持它。

于 2013-01-12T15:52:23.607 回答