15

私は API への呼び出しをラップしていますが、私のメソッドのほとんどは最初の行にあります。

if ( !Gree.Authorizer.IsAuthorized() )
{
    return;
}

Python では、これらのメソッドを のようなもので装飾します@login_required

でそのタイプのロジックをリファクタリングするには、何を使用しc#ますか?

4

3 に答える 3

6

アスペクト指向プログラミングと呼ばれる、より一般的なプログラミング方法論のサブセットを探しています。

C# は、いくつかのライブラリを通じてそれをサポートしているようで、CLR 機能のいくつかのおかげで、独自のものを展開することもできます。Aspect Oriented Programming using .NETを参照してください。これは、その基本原則をカバーしています (C# の詳細について説明している記事の一部をリンクしていますが、PostSharp のような既製のソリューションを探している場合は、残りの部分も同様に興味深いものです。答え)。

于 2012-11-07T12:08:04.093 に答える
4

このような C# 用の任意の AOP ツールを使用できます。

PostSharp を使用すると、ソフトウェア開発者は実装パターンをアスペクトと呼ばれるクラスにカプセル化し、カスタム属性を使用してこれらのアスペクトをコードに適用できます。

于 2012-11-07T11:59:45.053 に答える
2

私はpythonに慣れていませんが、「属性」(MSDN)(Javaアノテーションにかなり似ています)を探しているようです。

特に、.NET は " AuthorizeAttribute " を提供します。これはまさにあなたが望むことを (そしておそらくもう少し) 行います。あなたが.NETの下にいない間、これはあなたが達成しようとしている実装にいくらかの光を当てるかもしれません.

于 2012-11-07T12:17:11.033 に答える