この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
.Net/C#
›
.net/C#はAttributeを使ってシンプルなAOPを実装しています
眺める:
21364
|
答える:
1
[出典]
.net/C#はAttributeを使ってシンプルなAOPを実装しています
[リンクをコピー]
クズども
掲載地 2017/04/18 14:54:11
|
|
|
まずはシンプルなコードから始めましょう。
ログインが見えます。
例えば、これがウェブプログラムだとしましょう。まずセッションを確認し、次に権限を確認し、トランザクションを開始し、ログを書き、操作自体を実行し、最後にログを書きます。 明らかに、上記のすべてのメソッド呼び出しをDoSomething()で書くことはできないので、コードは大変なものになります。ではどうすればいいのでしょうか?
Springのようなフレームワークを使うなど実装方法は多岐にわたりますが、実際のプロジェクトではフレームワークを軽々しく導入することはできず、多くの場合、自分たちでいくつかのメカニズムを書く必要があります。
ここで私はMVCのフィルターを思い浮かべます。コントローラーやアクションに属性タグを付けていれば、メソッドの実行前後に他のことができるのです。 では、単純にフィルターの実装をシミュレートしましょう。
まず、元の手法は特徴ラベルの洗練された方法に変換されます。
ログインが見えます。
特徴タグには、特徴タグに対応するクラスやAOP実装が存在し、それらはファイルやアセンブリに独立して含めることができます。
まず、メソッドに付随するラベル(空として実装):
//贴在方法上的标签
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class MyInterceptorMethodAttribute : Attribute { }
その後、クラスに付けるラベルを定義します:
ログインが見えます。
以下はMyAopHandlerクラスの定義で、以下のように実装されています。
ログインが見えます。
上記のコードの特定の操作部分は「プロキシクラス」と同等であり、メソッド実行の文脈を本質的に変えることに注意してください。 デリゲートのようなオブジェクト指向プログラム構造は、特定の実装を外部に公開し、二次開発のために利用することができます。
先の:
ES5、ES6、ES2016、ESです。 次回:Javascrip{filter}tのバージョンはどうなっているのか?
次に:
PowerShell 入門チュートリアル - v0.3バージョン
閲覧したセクション
PowerShell
ジャワ
Microsoft SQL Server
Windows/Linux
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com