問題タブ [proxy-classes]
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.
actionscript-3 - ActionScript での Vararg メソッドのラップ
別の vararg メソッドのプロキシとして機能させたい vararg メソッドがありますが、その方法がわかりません。基本的なコードは次のとおりです。
Java からコードを移植しています。型システムは、引数が実際には配列ではなく文字列であることを認識しているため、引数を直接渡すことで b() を呼び出すことがわかり、すべてがあなたのやり方で機能します。予想。
しかし、ActionScript では、proxy メソッドを介して呼び出されると、引数配列が別の配列にラップされます。
したがって、b() が直接呼び出された場合、配列の深さは 1 レベルのみです。ただし、b() が a() を介して呼び出されると、配列は 2 レベルの深さになります。
これを回避するためのトリックを知っている人はいますか?
(注: 私の実際のコードでは、a() と b() は実際には別のクラスにあり、b() の実装にはまったく触れたくありません。a() は心ゆくまで書き直すことができます。ただし、b() は変更しないでください。)
java - jmxを使用した動的プロキシはスレッドリークを引き起こす可能性がありますか?
JMX インターフェイスを使用して動的プロキシを設定する Java に問題があり、これを別のコンポーネントに渡し、プロキシ オブジェクトを呼び出します。これを行うと、アプリケーションは呼び出しごとに 2 つのスレッドをリークします。これらのスレッドはタイムアウトすることはなく、アプリケーションがメモリ不足になるまで構築し続けます。
スレッドはペアで表示されます。下部のスタック トレースを参照してください。
少しあいまいなシステム プロパティを使用して、JMX でタイムアウトをまとめてオフにしようとしましたが、違いはありません。重要なアクションは、動的プロキシ呼び出しのようです。プロキシ経由で呼び出されるオブジェクトは Serializable を実装しているため、問題にはなりません。
MBean パスとオブジェクト インターフェイスの文字列を使用して手動で Bean を作成し、そこからメソッドを呼び出すと、問題はなくなります。
動的プロキシに関しては、経験があまりないため、ここでは主に古典的な落とし穴を探しています。
これがプロキシインスタンスの作成方法です
MyInvocationHandler の実装:
}
2 つのスレッドのスレッド スタック トレース (常にペアで表示されます):
c# - nhibernate DynamicProxy のプロキシ型の完全な名前を取得するにはどうすればよいですか?
netdatacontractserializer と SerializationBinder を使用して、クライアント側で nhibernate プロキシ用の独自のランタイム タイプを作成しています。
これはすべて機能しますが、ドメイン モデルには名前ごとに 1 つの型しかないと仮定せざるを得ません。つまり、名前空間を無視せざるを得ません。その理由は、SerializationBinder が「MyObjectProxyb04bae2d04d34e8a98b1d93bf24428cc」および「DynamicProxyGenAssembly2、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null」へのアクセスのみを許可して、親タイプを派生させるためです。
ご覧のとおり、親型の名前空間を指すデータはありません。
生成されたプロキシの名前を (名前空間のプレフィックスを含めるために) 変更することを検討しましたが、それはハードコーディングされているようです。
java - 非シングルトン Bean の Spring プロキシ キャストで BeanNotOfRequiredTypeException を修正しますか?
アプリケーション コンテキストから Spring Bean をプルする際に問題が発生しています。
やってみると・・・
わかります。
getBean() 呼び出しで指定されたクラスがないと、ClassCastException が発生します (以下で詳しく説明します)。
複数のインスタンスが必要なため、InnerThread Bean は非シングルトンとして初期化されています。InnerThread クラスも Thread を拡張します。興味深いことに、このエラーは、InnerThread とまったく同じように設定された OuterThread 内に表示されます。
以下に、関連するすべてのコード リスト/スタック トレースを含めようとしました。春の経験が豊富な人が、ここで何が起こっているのか教えてもらえますか?
コード/構成リスト
OuterThread.java スニペット:
SpringContextFactory.java:
app-context.xml:
スタックトレース
私の質問に答えない同様の質問
c# - WCFのHashSet
WCFインターフェイスでHashSetを使用しています
サービス参照を作成すると、HashSetはint[]に変わります。
ServiceKnownTypeを追加しました:
いくつかの構成を試しましたが、完全に変更することはできませんでした。
変更すると、すべてが機能するようにハードコーディングされていますが、参照を更新するたびに変更するのは本当に面倒です。
私はおそらく何か間違ったことをしている、何か指針やアイデアはありますか?
wcf - Wcf サービス プロキシ名/名前空間の命名戦略
サービス プロキシ クラスでうまく機能する命名戦略を持っている人はいますか?
たとえば、次のように 2 つのプロジェクト内に 3 つの Web サービスが与えられたとします。
AService
、BService
およびのサービス参照名および名前空間として何を使用しCService
ますか?
一般に、プロキシの名前/名前空間に、使用されているものが具体的なクラスではなく、プロキシを表していることを示すものが必要です-両方とも、具体的なクラスの使用と衝突しません[そしてエイリアスまたは名前空間の使用を強制します-修飾されたクラス名]、したがって、ホップが発生しているという事実を隠していません (クライアントの Wcf サービス プロキシ ジェネレーターの既定のサフィックスがそれをカバーしていると思います)。また重要なことは、呼び出しの[サブセット]セットを別の参照されたサービスに転送するラッパー/シム サービスを作成している場合に対処することです。
私はさまざまなスタイルを使用してきました (、、、または接尾辞を追加Ws
しますか? 前に を付けますServiceProxy
)が、それらに完全に満足したことはありません。Ref
Proxy
ServiceName.
あなたにとってうまくいったことは何ですか?命名スタイルを参照するスタイルガイドはありますか?
編集:Cheesoの回答は私の質問の大部分をカバーしていますが、私はまだ回答を聞くことに興味があります:
- 上記の例のような名前空間プロキシ クラスの戦略
- プロキシの命名戦略について言及しているスタイル ガイド
seam - Seam プロキシクラスはどうですか
seam は実際にインターセプトのためにすべてのクラスをプロキシします。プロキシ化されたクラスとインターフェースを実装するプロキシ化されたクラスに違いはありますか?? 春のように、クラスで指定されたすべてのインターフェースを実装するプロキシインスタンスが作成されます。
java.lang.reflect.Proxy と cglib または javassist の間でパフォーマンスを経験した人はいますか? プロキシ経由のインスタンス化は、バイトコード操作よりもはるかに高速ではありませんか??
前もって感謝します
c# - wsdl からプロキシ クラスを作成するための wsdl.exe の代替手段
wsdl.exeは、.Net が wsdl からプロキシ クラスを生成するためのデフォルト ツールのようです。既知の問題があります(こちらとこちら、 SO に関するいくつかの 質問も参照してください)。代替のプロキシ クラス ジェネレータはありますか?
私はWCFをやっていないので、svcutil.exeなどのツールは使えないかもしれません。
c# - 生成されたクラス (Web サービス プロキシ) のプロパティに属性を追加する方法は?
Web サービスからデータを取得する Silverlight 3 アプリケーションがあります。Web サービスへの参照を追加すると、Web サービスで使用されるすべてのクラスがプロキシ クラスで定義されます。ここまでは順調です...今度は、Silverlight 3 で提供される DataForm を使用したいと思います。そのコンポーネントを使用するには、クラスにメタデータを追加する必要があります (たとえば、以下のコードを参照)。
私の質問は、クラス Movie が .NET によって生成されたプロキシ クラスで定義されていることを考慮して、生成されたクラスを変更せずに属性/メタデータを Movie クラスのプロパティに追加するにはどうすればよいですか?
ありがとう
.net - WinFormsクライアントとWebサービスの間で共通のクラスを使用するにはどうすればよいですか?
Webサービスとデータを保持するためのクラスの「共通」ライブラリを共有する大規模な管理用winformsアプリケーションを継承しました。私が抱えている問題は、Webサービス呼び出しからクラスの入力されたインスタンスを返すと、それが別のタイプとしてクライアントに出力され、他の「共通」プロジェクトロジックを使用して操作できないことです。
これは、WebサービスがCommon.Widgetタイプのオブジェクトを返すが、それをネットワーク上で転送するためにそのオブジェクトをラップするためです。これが完了すると、.NetがInvalidCastExceptionをスローするため、オブジェクトを「common」タイプにキャストして戻すことはできません。
WCFとDataMember属性を使用してこれを実行しましたが、このプロジェクトは非常に大きく、テストサーバーがWin2K(Win2Kの場合は.Net 3+ではない)であるため、現在WCFにアップグレードできません。
それで、これを簡単に行う方法はありますか、それともWebサービスから取得したすべてのデータを共通ライブラリのraw型に変換する必要がありますか?
前もって感謝します
ライアン