問題タブ [realproxy]
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# - RealProxy を介した参照引数
RealProxy を介して参照引数を使用してメソッドを呼び出す必要があります。問題を次のコードに切り分けました。
プログラムは「Hello World!」を生成する必要があります。出力しますが、どういうわけか、ref 引数の変更がプロキシで失われます。これを機能させるにはどうすればよいですか?
.net - 透過プロキシしか知らない場合に RealProxy を取得する方法
たとえば、WCF によって生成されたものなど、透過的なプロキシがあります。
透過プロキシから RealProxy を取得するにはどうすればよいですか?
vb.net - RealProxy透過プロキシを介してオブジェクトを戻り値としてどのように返しますか?
私は、RealProxyオブジェクトを使用して、一連のオブジェクトに対するメソッド呼び出しをインターセプトし、呼び出しを処理して、適切な結果を返すことを計画しているシステムを作成しています。
これは、文字列やintなどの単純な戻り型を見つけるだけで機能しますが、RealProxy.Invokeメソッドからオブジェクトを返すようには見えません。
すべてが機能します。エラーは発生しませんが、戻り値はオブジェクトではなく、常に何もありません。
可能な限り最小のサンプルコードを作成し、以下に含めました。
基本的に、RPtestを呼び出してシングルステップスルーするだけです。このコードは、文字列フィールドとオブジェクト値フィールドを持つ単純なオブジェクトRPTestAを作成します。次に、文字列Dim x = c.Nameを取得します。これは正常に機能し、オブジェクトの取得を試みます。
これは常に何も返しません。
ただし、FieldGetterルーチンでは、次のコードを使用します。
ReturnMessageのReturnValueフィールドを、すぐ上のActivator.CreateInstance(t)呼び出しによって作成されたオブジェクトに設定すると、正常に機能しているように見えます。
ある種のシリアル化の問題だと思いますが、途方に暮れています。
このコードはすぐに実行できるはずですが、新しいVB.netプロジェクトに貼り付けるだけです。
c# - C#RealProxy:ジェネリックメソッド?
を介してジェネリックメソッドの呼び出しを処理しようとしていRealProxy
ますが、インターセプトされたメソッド呼び出しで使用されるジェネリックパラメーターの実際のタイプに関する情報が見つからないようです。コードの抜粋:
私が次のようなインターフェースをプロキシしているとしましょう
プロキシを呼び出すとき
ジェネリックパラメーターがタイプであることを確認できるようにしたいと思いますMyClass
。これは可能RealProxy
ですか?
c# - 「RealProxy.GetTransparentProxy()」が「null」を返すのはどのような場合ですか?
http://msdn.microsoft.com/en-us/library/system.runtime.remoting.proxies.realproxy.gettransparentproxy%28v=VS.100%29.aspxのドキュメントは、GetTransparentProxy
が返されるシナリオを示していません。null
しかし、私はnull
それを呼び出すと戻ってきます。
この動作はどのような状況で発生しますか?
c# - Autofac および Cross-AppDomain プロキシ
クロス AppDomain プロキシを Autofac に登録しようとしています。
プロキシによって表される具象型は、インターフェイス IServiceHost を実装します。したがって、そのインターフェイスを使用してプロキシへの呼び出しが機能するようにするには、プロキシも必要です。
次のようにして、プロキシをAutofacに登録しようとします。
しかし、builder.Build()
電話で、私は得る:
ArgumentException
タイプ 'System.MarshalByRefObject' は、サービス 'Treadmarks.Core.ServiceBase.IServiceHost' に割り当てることができません。
ただし、null ではなく、厳密に型指定されたメソッド引数から取得されるため、間違いなくhost
です。IServiceHost
プロキシを正しく登録する方法を誰か説明できますか?
wcf - RealProxyを使用して複数のWCF接続をラップする
私は、サーバーが同じインターフェースを公開している複数のサーバーと通信するプロジェクトに取り組んでいます(クラスタリングの場合のように)。ラウンドロビンを使用して、リクエストを送信するサーバーを選択します。これまで、Expressionを使用してClusterManagerを呼び出してきましたが、これにより、コードが醜くなります。また、単体テストが煩雑になり、メソッドパラメータの検証が少し難しくなります。また、ランダムな例外を除いてMoqでいくつかの問題が発生するようです(この投稿のトピックではありません)。
私は現在、アクションまたは関数の引数を使用したインターフェイスのMoqセットアップ後のドキュメントに記載されているように、サーバーと単体テストを呼び出しています
要点:
私は現在、次のアプローチを採用しています。
これを次のように変更したいと思います。
ServerProxyはRealProxyであり、サーバーへの実際の呼び出しを実行するには、この呼び出しをClusterManagerに変換する必要があります。現在、ClusterManagerにはCallServerと同じ署名がありますが、これは既存の実装では少し冗長です。Invoke(IMessage)での呼び出しの翻訳については、2つのアイデアがあります。
アイデア 1IMethodCallMessageをlamda式(実行方法を理解できていません)に変換し、ClusterManagerに渡します。式の作成方法がわからないという問題を除いて、戻り値を再度処理します。一部のメソッドは値を返しますが、他のメソッドは返しません。そのため、これにはClusterManager.CallServerの複数のオーバーロードを維持することが含まれます。また、Invokeから戻るにはIMessageを作成する必要があります。
アイデア2 サーバーの呼び出しに現在使用しているWCF接続のTransparentProxyのRealProxyを取得し、メッセージを表示してInvokeを直接呼び出します。私の試行(統合テストを使用)では、サーバーを正常に呼び出すことができたようですが、ReturnMessageを調べると、戻り値がなく、ServiceChannelProxyがメッセージデータを取得しようとすると、ExceptionプロパティがArithmetricExceptionに設定されます。これは、テストで何か間違ったことをしたか、2つの別々のプロキシで同じLogicalCallContext(または他の何か)を使用できないことが原因である可能性があります。
これに対処する方法についての指針はありますか?アイデア2は最も単純に見え、コードの量が最も少なくなることを願っています。IServerExposedToClientのすべてのメソッドをクラスに実装して正しいサーバーで呼び出すことは、私がやりたいことではありません。
これに対処する方法についての指針はありますか?
c# - RealProxy によるイベントのフック
イベント (その場合はアクション) をフックしようとしていますが、例外なくプロキシから戻ることはできません。アイデアは次のとおりです。私はイベントのインターフェースを持っていますが、クライアント側ではサブスクライブしていません。したがって、クライアント側でイベントを発生させようとすると、プロキシでこのイベントをキャッチし、リモートサーバーにこのイベントの名前とそのパラメーターを送信して、プロキシから戻りたいだけです。ここに私のサンプル
c# - 2 つのインターフェイスを動的に組み合わせて RealProxy に渡す方法
RealProxy ベース コンストラクタの呼び出しでは、プロキシされるターゲット オブジェクトの Type を渡します。私がやりたいのは、プロキシされた型にインターフェイスを動的に追加して、結果のプロキシされた型を追加のインターフェイスにキャストできるようにすることです。
例えば:
したがって、プロキシされた型を にキャストできるようにするには、基本コンストラクター呼び出しに加えてIDisposable
送信できる必要があります。IDisposable
IFoo
RealProxy
本質的に、プロキシされるように動的に追加IDisposable
するには、このメソッドをどのように実装しますか。IFoo