問題タブ [postsharp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - PostSharp は速度に影響しません
PostSharp で信じられないほど優れたパフォーマンス動作を見つけました。速度を評価するために、1 つの関数を指定された回数実行する小さなプログラムを作成しました。PostSharp が有効になっている場合は、メモリ内だけで数百の文字列を生成および削除します (構成が固定されていないため、自動ではありません)。インターン)。ループは、かなりの時間 (数ミリ秒) で実行されます。
現在、数百万回の実行で違いを測定することはできません.400億回までの反復のクレイジーな実行は、同じ数の呼び出しを行う非PostSharpバージョンとわずか数ナノ秒の違いになりました. 私には、これは不可能です。私のテストに何か問題があるに違いない。私は同僚にコードを査読してもらったので、コードが意図したとおりに機能することをかなり確信しています。
では、ベンチマークの実行速度の遅いシミュレーションとして文字列生成 (意図したアプリケーションで予想される用途) を使用することに何か問題があるのでしょうか?
または、他の誰かが PostSharp のランタイム パフォーマンス分析を実行した (または知っている) ことはありますか?
ありがとうございました。
asp.net-mvc - PostSharp 2.0 BadImageFormatException
Postsharp を使用して、MethodInterceptionAspect から派生したトランザクション アスペクト内に特定のメソッドをラップするアプリケーションがあります。アプリケーションの ORM として NHibernate 2.0 を使用します。このコード ブロック内にエラーがあります。
その結果、次のエラーが発生します: System.BadImageFormatException: 不正な形式のプログラムを読み込もうとしました。(HRESULT からの例外: 0x8007000B) これは、呼び出しを保存する場合にのみ発生し、呼び出しを削除または取得しないようです。
誰かがこれまでに似たようなものに遭遇したかどうか疑問に思っていましたか?
.net - PostSharpは、本番環境で実行されているコードをプロファイリングするための良い方法ですか?
テストと本番環境で実行されているいくつかのサービスに対してプロファイリングコードを実行したいと思います。私の計画は、PostSharpを使用して次のようなクラスを実装することです。
行き過ぎる前に、知っておくべき潜在的な落とし穴はありますか?これらのメソッドを広く使用すると(つまり、assemblyinfoに行を追加するだけで)、(タイミングデータの有効性に関して)深刻なパフォーマンスの問題が発生しますか?
c# - アプリケーションの終了時に PostSharp でコードのブロックを実行するにはどうすればよいですか?
現在、OnMethodBoundaryAspect.OnExit メソッドでメソッド名を確認しています。
明らかに、これは醜く、下品に感じます。PostSharp でアプリケーションの終了を検出するより確実な方法はありますか?
.net - ポスト シャープ IL レベルの相互作用
PostSharp を見ていると、これは実行時に生成されたプロキシを使用していないことに気付きましたが、実際にはコンパイル プロセスにヒントを与えて、IL 内にアスペクトを含めるようにしています。
それで、私の最初の考えは、一体どうやってこれが行われたのかということでした。私が見るべきポインタはありますか?
c# - PostSharp - WebMethod 属性メソッドのみにアタッチ
PostSharp を使用して、WebMethod 属性を持つメソッドにのみ「アタッチ」することは可能ですか?
元:
PSコミュニティでマニアックにググったり検索したり。しかし、私が探しているものはまだ見つかりません。正しい方向のコメントは役に立ちます。
ありがとう!
c# - コンパイル後のコードインジェクションがコンパイル前のコードインジェクションよりも優れているのはなぜですか?
したがって、C#にはCのようなマクロプリプロセッサがないことは誰もが知っています(そして、その理由については良いスレッドがあります)。しかし、AOPが勢いを増している今、私たちはプリプロセッサで行っていたポストプロセッサで何かを始めているようです(私はPostSharpで足を濡らしているだけなので、おそらくベースから外れていることに注意してください)。
私はC#の属性の大ファンですが、正当な理由でプリプロセッサが除外された場合(以前のMFCユーザーとしてはまだ疑問がありますが、それでも受け入れます)、コンパイル後のコードインジェクションがプリプロセッサよりも優れている理由は何ですか?コンパイルコードインジェクション?
c# - .net でのコード保護とコード ウィービング
postsharp で clisecure によって作成されたコード保護 (コードは暗号化され、反映されません) を使用しようとしましたが、ソリューションで postsharp を使用すると、セキュアな dll がコンパイルされません。PostSharp.Laos と PostSharp.Public だけを使用します
あなたはそのような組み合わせを試したことがありますか?あなたはそれを機能させることができましたか。使用している場合、どの難読化ツールとどのコード ウィービング フレームワークを使用しているか教えてください。
c# - 特定のクラスのみのカスタム属性
カスタム (PostSharp) 属性に制約を定義したいと思います。私の目標は、クラスXがYインターフェイスを実装していないが、それが私の属性を持っている場合、コンパイル時にエラーまたは警告を取得することです。
したがって、これは機能するはずです:
しかし、これはコンパイルプロセスを壊すはずです:
それはどのように可能ですか?
理由
この属性はアスペクトのように機能し (これは PostSharp属性です)、織り込まれたクラスがこの属性に必要なすべての情報を提供することを確認したいと思います。
nullの結果を避けたい
コンプライアンス時間のチェックは良い習慣だと思います。
解決
私はここで完璧なスタートを見つけました: Validating attribute usage with PostSharp Aspects
unit-testing - 単体テストと PostSharp
これを行う最善の方法は何だろうと思っています... 自分のプロジェクトの 1 つに PostSharp を導入することに興味がありますが、属性でマークされたクラスを適切に単体テストする方法がわかりません。
例えば:
omg() メソッドのロジックをテストしたいのですが、実際にはデータベースがないため、単体テストではアスペクトが呼び出されないようにする必要があります。
考え?