0

だから私は PostSharp と協力してボイラープレートのロギング/例外処理コードを引き出し、次のようにします。

public void doSomething()
{
    Logger.Write("Entered doSomething");

    try
    {
        // code
    }
    catch (Exception ex)
    {
        ExceptionPolicy.HandleException(ex, "Errors");
    }

    Logger.Write("Exited doSomething");
}

これになります:

[Log]
[HandleExceptions]
public void doSomething()
{
    // code
}

ただし、特定の場所に、既知の回復ポイントが存在するインスタンスを持つコードがあるため、次のようになります。

public void doSomethig()
{
    try
    {
        // code
    }
    catch (KnownException ex)
    {
        ExceptionPolicy.HandleException(ex, "Known");
    }
    finally
    {        
        this.Recover();
    }
}

これをアドバイスとして表現したいのですが、アドバイスからクラスのメンバーにアクセスできないようです。

4

1 に答える 1

1

はい。アスペクトからターゲット クラスのメンバーを呼び出すには、このメンバーをアスペクトにインポートする必要があります。http://doc.sharpcrafters.com/postsharp/2.0/Content.aspx/PostSharp.chm/html/e2086a16-ba9e-43b6-b322-12021b6f24c8.htmを参照してください。

于 2010-08-03T20:51:43.370 に答える