Download Metalama Tools for Visual Studio and see which NuGet packages are necessary.
Download Metalama Tools for Visual Studio and see which NuGet packages are necessary.
昨日の記事に書いたC#-users.jpで話題に上ってた話。 http://d.hatena.ne.jp/ufcpp/20090326 こちらにまとめられているINotifyPropertyChanedのこと AOPで何とかなれば・・・という話をしてたときに PostSharpことを誰かが言ってました。 まえに、ちょこっと触ったきり、忘れていたので この機会に、それを利用して実装しようかなと。 目標はufcppさんのところで書かれている [NotifyChanged] public int X { set; get; } 上記みたいな感じで更新通知ができること。 と、やってみたらできました。 [Notify] public int prop1 { get; set; } public int prop2 { get; set; } こう書いて Console.WriteLine("S
コンパイル時の検証エラーでメッセージをユーザーに伝えたいことがあります。APIをみるとMessageクラスのコンストラクタでソースファイルや行番号を指定できるようになっています。 http://doc.sharpcrafters.com/postsharp/2.0/##PostSharp.chm/html/M_PostSharp_Extensibility_Message__ctor_1.htm でも、ソースファイルや行番号を取得する方法が提供されていないっぽいんですよね。指定しなくてもエラー情報は出せますが、Visual StudioのError Listビューからジャンプできないという問題があります(ソースファイルや行番号がわからないのでどうしようもない)。これだとコンパイル時にがんばっても使いにくくて仕方ないです。Eclipse上のaptみたいに、エラー箇所をエディタ上に示せるわけで
久しぶりにAOPネタ。 PostSharp - postsharp.org akirameiさんの所で紹介されていた、.NETの主に(※)AOPのためのフレームワーク。 はじめてのPostSharp - 匣の向こう側 - あまりに.NETな 以前ここでも書いたが、.NETにおけるAOPの実装の方法は .NETプラットホームで可能なAOP実装のまとめ 1.ContextBoundObjectとカスタム属性を用いた方法 2.動的なアセンブリ生成(MSIL Emition)を用いた方法 3.RealProxyを用いた方法 大きくこの3種類が挙げられる。 それぞれの実装を実際に評価してきたが、1.は少し特殊なクラスを継承する必要があり、冗長で実装が面倒なこと、2.はアセンブリを動的に生成する処理が必要であり、これが重い処理であること、アスペクトを適用するためにはvirtual属性が付加されたメソッ
NEWSで取り上げたPostSharpが面白そうなので早速実験です。 まず、コンソールアプリケーションプロジェクトを作成して、MyTestAttributeクラスを作成します。 using System; using PostSharp.Laos; [Serializable] class MyTestAttribute : OnMethodBoundaryAspect { public override void OnEntry (MethodExecutionEventArgs eventArgs) { Console.WriteLine ("Enter:" + eventArgs.Method.Name); } public override void OnExit (MethodExecutionEventArgs eventArgs) { Console.WriteLine ("
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く