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 に答える