問題タブ [dynamic-proxy]
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# - クラス内から呼び出されたときにキャッスルダイナミックプロキシがメソッド呼び出しをインターセプトしない
Castle の Dynamic Proxy を使用しているときに、少し (私が思うに) 奇妙な動作に遭遇しました。
次のコードを使用します。
出力が得られることを期待していました:
- 傍受された呼び出し: Method1
- 方法 1 と呼ばれる
- 傍受された呼び出し: Method2
- 方法 2 と呼ばれる
- 傍受された呼び出し: Method2
- 方法 2 と呼ばれる
しかし、私が得たものは次のとおりです。
- 傍受された呼び出し: Method1
- 方法 1 と呼ばれる
- 方法 2 と呼ばれる
- 傍受された呼び出し: Method2
- 方法 2 と呼ばれる
私が知る限り、動的プロキシは、呼び出しがクラス自体の外部から来た場合にのみメソッド呼び出しをプロキシできます。これは、Program から呼び出されたときに Method2 がインターセプトされたが、InterceptedClass 内からではなかったからです。
プロキシされたクラス内から呼び出しを行うと、プロキシを通過しなくなることはある程度理解できますが、これが予想されていたことを確認したかっただけで、そうであれば、とにかくすべての呼び出しをインターセプトする方法があるかどうかを確認したかっただけです。彼らはどこから呼ばれていますか?
ありがとう
c# - C#はSystem.Data.Entity.DynamicProxiesを実際の(プロキシされていない)クラスに複製しますか?
System.Data.Entity.DynamicProxiesを実際のクラスに複製または変換する方法を理解しようとしています。例えば:
MyApp.EntitiesのすべてのクラスはBaseEntityを継承しているため、そこで変換を実行しようとしました。
次に、DynamicProxiesを実際のクラスに変換します。
この理由は、このオブジェクトからすべてのEntity Frameworkトラッキングなどを削除し、そのプレーン(POCO)プロパティをキャッシュに保存するためです。そして、100程度のエンティティクラスすべてに対してこれを実行できる必要があるため、すべてのプロパティに対して手動でobject1.foo = object2.fooと言わずに、かなり一般的である必要があります。
c# - インターフェイスをサポートする DynamicObject を作成する方法はありますか?
DynamicObject から派生し、インターフェイス (ICanDoManyThings) をサポートするクラスを、インターフェイスに各メソッドを実装することなく定義できますか?
動的プロキシ オブジェクトを作成しようとしていますが、このクラスでのメソッド呼び出しを MyProxyClass.TryInvokeMember の実装によって処理する必要があります。これは、それらをラップされたオブジェクトに渡す場合と渡さない場合があります。
これは可能ですか?
ありがとう
java - Javaでのインターフェース/抽象クラスの動的実装
インターフェイスや抽象クラスの動的な実装を構築するための事実上のソリューションは何ですか?私が基本的に欲しいのは:
java - java.lang.reflect.InvocationHandlerのinvokeのメソッドパラメータリストからの「プロキシ」オブジェクトは何を表していますか?
私はこのシナリオに少し混乱しています:
タイトルに記載されているInvocationHandlerインターフェイスを実装するクラスがあります。クラスは次のようになります。
そして、私の「メイン」メソッドで、次のように言いましょう。
ここで問題となるのは、「呼び出し」が次のようなエラーをスローすることです。
..。
rtti.SimpleProxy.invoke(MainClass.java:81)で
rtti。$Proxy0.toString(不明なソース)で
java.lang.String.valueOf(String.java:2826)で
java.io.PrintStream.println(PrintStream.java:771)で
rtti.SimpleProxy.invoke(MainClass.java:81)で
rtti。$Proxy0.toString(不明なソース)で
java.lang.String.valueOf(String.java:2826)で
java.io.PrintStream.println(PrintStream.java:771)で
..。
この行のために:
System.out.println(プロキシ);
この行にコメントすると、everithingは正常に機能します。
誰かが私に何が問題なのか説明できますか?
注意:Javaドキュメントでは、InvocationHandlerからのinvokeメソッドについて次のように述べています。
プロキシインスタンスでメソッド呼び出しを処理し、結果を返します。このメソッドは、関連付けられているプロキシインスタンスでメソッドが呼び出されると、呼び出しハンドラーで呼び出されます。
パラメータ:proxy-メソッドが呼び出されたプロキシインスタンス
...だから私はそれがうまくいかない理由を理解できません...
c# - Castle プロジェクトの DynamicProxy は Reflection を多用していますか?
Castle プロジェクトの DynamicProxy は Reflection を頻繁に使用していますか?
それとも、データを事前にリフレクション キャッシュしますか?
entity-framework - エンティティフレームワーク4.1とMVC3で動的プロキシを有効または無効にする必要がありますか?
誰かがアドバイスを提供したり、この決定を下すのに役立つ可能性のあるブログ/記事を指摘したりできますか?プロキシは私には非常に異質であるように思われ、私はそれらを使用することを躊躇しています。モデルの仮想プロパティを使用して遅延読み込みを制御する機能は気に入っていますが、それが私が見ることができるほとんどすべての利点です。私のアプリケーションは単純なMVCWebアプリケーションであり、エンティティが状態の変化を経験したときのために、コンテキストにフックを接続する必要はありません。
とにかく、これが私の今の長所と短所の非常に限られたリストです、私がこれのいずれかでベースから外れているかどうか私に知らせてください。
長所
- 「保存」または「更新」では、「変更を適用」とシームレスになります
- 遅延読み込みの構成は非常に簡単です。
短所
- これまで私のエンティティにプロキシを使用したことはありませんでした。これはアプローチの変更であり、私自身や他のチームメンバーにとっては不快に思えます。
- デバッグが面倒です。
- シリアル化/逆シリアル化する場合は追加のコードが必要です
- 「保存」または「更新」では、プロキシはコンテキストから取得されたものと同じオブジェクトである必要があります。
java - 実行時の Java オブジェクトの拡張
プロキシ対応ライブラリ (javassist、JDK 動的プロキシなど) を使用すると、実行時にインターフェイスを実装するようにクラスを拡張できることを認識しています。
私の質問は次のとおりです。インスタンス化されたオブジェクトを拡張して、実行時にインターフェイスを実装することは可能ですか (同様に、適切なメソッド ハンドラーを提供します)。
c# - 1つのファイルのAOPプロキシジェネレータを探しています
私はWPFの自動ページング可能コレクションに取り組んでいます。私は内部的に優れたライブラリLinFu.DynamicProxyを使用しています。依存関係を最小限に抑えたいのですが、DynamicProxyジェネレーターを実装する「1つのファイル」ソリューションが見つからなかったので、そのようなコンポーネントを知っているかどうかを尋ねたいと思います。
ありがとう、
フェリーチェ
asp.net-mvc-3 - POCO から DynamicProxy に現在の値を適用すると、複雑なオブジェクトでエラーが発生する
ドメインとして EF4 プロジェクトを使用している MVC3 プロジェクトがあります。Domain は、T4 を使用して POCO オブジェクトを構築する Model first プロジェクトです。ドメインにはいくつかの ComplexTypes があり、context.CreateObject() によって返されるプロキシを使用する限り、すべてがうまく機能します。
MVC3 アクションが呼び出されると、モデル バインダーは、ドメインに適用される変更を含む非プロキシ オブジェクトを渡します。
ビューが後でナビゲーションプロパティにアクセスできるように、「プロキシされた」オリジナルを操作したいので、まっすぐにAttachToを使用してもうまくいきません。
最初にコンテキストから「元の」プロキシ オブジェクトを取得し、次にモデル バインダーによって提供される POCO に含まれる変更で更新する必要があります。
私が読んだことと、私の調査によると、次のようなものを使用してこれを達成できるはずです。
私の問題はこのエラーです:
- 非プロキシ オブジェクトの複合オブジェクトとプロキシされたオブジェクトの複合オブジェクトは同じではありません。
- エンティティには 1 つの複合オブジェクトしかないため、同じ ComplexType の 2 つのプロパティを複数回設定することはできません。
- 複合オブジェクト自体には実際には値が設定されていないため、2 つの null 許容フィールドは実際にはまだ null のままです。
- AttachTo メソッドを使用し、オブジェクトの状態を変更済みに設定すると、保存は機能しますが、後でオブジェクトを使用してビューを返すことはできません。これは、ナビゲーション プロパティが null であるためです。
何かご意見は?助けてくれてありがとう。