問題タブ [interception]
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.
javascript - 関数と function.length のラッピング
次のコードがあるとしましょう
傍受ロジックでラップしようとしたため、.length
データを失いました。_fun
以下は動作しません
注釈付きのES5.1 仕様で.length
は、次のように定義されています。
内部のロジックが正確であるfun
必要がある場合、データ.length
を破壊せずにこの関数を傍受して上書きするにはどうすればよいでしょうか?.length
私は使用する必要があると感じており、同じ数の引数で新しい文字列を作成するeval
のは危険です。Function.prototype.toString
これは避けたい。
javascript - javascriptでinnerHTMLの変更を傍受する方法は?
Web ページ内のセルのコンテンツの変更をインターセプトする必要があります。
次のコードは、addEventListener が機能しないことを示しています。
コードは単なるおもちゃの例です。私の実際のケースでは、ページの変更 (したがってセルの変更も) は、私が制御できない webapp によって行われます。
php - 設定ファイルを仮想化する方法
Ion Cube で暗号化された PHP スクリプトがあります。ライセンスに違反したくないので、スクリプトを変更することはできません。このスクリプトは、XML ベースの構成ファイルを呼び出します。構成データを保存するデータベースを作成し、それをリクエストを行ったリファラー URL に基づいて暗号化されたスクリプトにフィードしたいと考えています。基本的に、構成 XML ファイルを「仮想化」して、リファラー URL に基づいて必要なデータを暗号化されたスクリプトにフィードできるようにしたいと考えています。
何か案は?
java - Java-アノテーションとインターセプトメソッドを使用しますか?
Javaでメソッドをインターセプトする簡単な方法はありますか?メソッドを実行する前にロジックの一部が呼び出されるように、必要なメソッドにアノテーションを追加する必要があります。
編集:
Androidアプリに推奨されるGuiceライブラリにはAOPが含まれていません。ライブラリを追加せずにリフレクションを使用してこれを実現することは可能ですか?
c++ - 傍受を伴うキー押下の送信
キーボード アクションを偽造する通常の方法 (SendInput/SendKeys/etc) をすべて試しましたが、DirectInput を使用するゲームではいずれも機能しないようでした。多くの読書と検索の後、デバイスに接続できる C++ ライブラリであるInterceptionに出くわしました。
C++ (C# には何も存在しませんでした) を使用して以来、非常に長い時間が経過しているため、これで問題が発生しています。以下にサンプルコードを貼り付けました。
これを使用してコードから重要なアクションを開始する方法があるように見えますか? サンプルはすべて、デバイスにフックしてアクションを書き換えるだけです (x キーで y を出力、マウス軸を反転するなど)。
コメントアウトしたコードは、私が試したもののうまくいかなかったものです。
c# - MEF構成とインポート選択の傍受
みんな
問題は、同じエクスポート シグネチャを持つ 2 つのエクスポートされたコンポーネントが存在するが、インポートする必要があるのは 1 つだけである場合です (これは可能です。実際の例では、古いプラグインをアンインストールせずに新しいプラグインをインストールして、古いプラグインを置き換えます)。どのコンポーネントをインポートする必要があるかを示す構成ファイルを提供できますが、問題は MEF に正しい選択を伝える方法です。
私には3つの方法があります:
カスタム カタログを使用して、利用可能なプラグインをフィルタリングします。しかし、A がコンポーネント A をインポートし、B がコンポーネント B をインポートし、コンポーネント A と B が同じエクスポート署名を持っている状況を想定します。コンポーネントごとに新しいカスタム カタログを作成しない限り、カスタム カタログではこれを処理できません。
MEF構成の傍受。それが可能かどうかはわかりませんし、方法もわかりません。しかし、合成プロセスでインターセプトできる方法があれば、これが最善の方法になる可能性があります。
実際のインターフェイスの代わりにインポート ラッパーを使用します。コンポーネントが構築されると、ラッパーが初期化され、ラッパーが選択ロジックを処理できるようになります (ウィンドウにプロンプトを表示し、ユーザーに 1 つを選択させたり、構成を読み取らせたりするなど)。
aop - Spring.NET で DefaultAdvisorAutoProxyCreator を使用してスレッドスコープのオブジェクトを定義する方法
DefaultAdvisorAutoProxyCreator を使用して (インターセプターを使用して) スレッド ローカル オブジェクトを作成したいと考えています。ProxyFactoryObject を使用してそれを行う方法を知っています。
ただし、DefaultAdvisorAopCreator を使用して同じ効果を得る方法がわかりません。これが私が試したことです(しかしうまくいきませんでした):
ThreadLocalTargetSourceCreator は、無条件に ThreadLocalTargetSource インスタンスを返すカスタム クラスです。
つまり、要約すると、(ProxyFactoryObject を使用して) 最初の構成で Spring.NET から ServiceCommand を要求すると、スレッドごとにオブジェクトのインスタンスが 1 つだけ取得されます (正しい動作)。ただし、2 番目の構成 (DefaultAdvisorAutoProxyCreator) では、毎回新しいインスタンスを取得します (動作が正しくありません。スレッドごとに 1 つのインスタンスが必要です)。
何かご意見は?
wcf - UnityコンテナにWCFサービスを登録する
Windows サービスでホストされている wcf サービス ライブラリがあります。Service メソッドの呼び出しをインターセプトする必要があります。この場合、このリンクで見られるように、WCF を Unity コンテナーに登録することをお勧めします。
http://weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx
Codeplex の Unity.WCF アセンブリによって同様のアプローチを実装しようとしています。コンテナー構成またはブートストラップを wcf サービス ライブラリ (または Windows サービス) のどこに置くべきか理解できませんでした。固体サンプル (対溶液) は提供されていません。
マイ Windows サービス ホスト
私のサービス契約
この場合、インターセプターは機能しないようです。簡単に言うと、WCF サービスが DI コンテナーに登録され、サービス メソッドがインターセプトされるサンプル プロジェクトが必要です。
aop - Autofac + Castle DynamicProxy:インターセプターの順序
AutofacでCastleDynamicProxyを使用しています。プロキシを作成したオブジェクトがあり、プロキシに作用する2つのインターセプターがあります。1つは例外をログに記録するためのもので、もう1つはメソッドの戻り値を変更するためのものです。登録コードは次のようになります。
この順序で引数を指定することにより、必要な結果が得られることがわかります。つまり、例外がログに記録され、結果が処理されます。引数の順序を逆にすると、ロギングは発生しません。
私の質問は、このように登録されていますが、インターセプターは毎回同じ順序で実行されることが保証されていますか?それとも、注文が毎回私が意図したものになるようにするためのより良い方法はありますか?
FWIW、私はIInterceptorSelectorインターフェースを見ました。おそらく私は何かを見逃しているかもしれませんが(それはありそうもないことではありませんが)、この場合は関係がないように見えました。しかし、私が間違っていれば、私は喜んで訂正されます。
必要に応じて、より長いコードサンプルを提供できます。
musicologyman
c# - 名前で Unity RegisterType を使用すると、Interceptor が機能しません
タイプを名前で解決すると、傍受が機能しません。しかし、名前を削除すると、再び機能します。私のコードの何が問題になっていますか?