問題タブ [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.

0 投票する
1 に答える
705 参照

visual-studio - Visual Studio で生成された Web サービス プロキシ クラスのエンコードを停止するにはどうすればよいですか?

Visual Studio で生成されたプロキシ クラスを使用して Web サービスにアクセスしています (プロジェクトへの Web 参照として Web サービスを追加しました)。問題は、Web サービスが公開する関数が CDATA 要素を想定していることです。つまり、次のようになります。

残念ながら、"" をプロキシ クラスに渡すと、次のように Web サービスが呼び出されます。

これにより、Web サービスに問題が発生しているようです。Visual Studio によって生成されたプロキシ クラスを使用している間にこれを修正する方法はありますか?

0 投票する
2 に答える
1528 参照

vb.net - パラメータタイプのインスタンスを使用する.NETWebサービス?

ソリューションにWindowsフォームプロジェクトとWebサービスプロジェクトがあり、Webサービスを呼び出して、結果として顧客オブジェクトを返そうとしています。問題は、returnオブジェクトを受信しようとすると、変換できないというエラーが発生することです。たとえば、これが私のWebサービスの署名です。

そして、これが私がそれを呼び出すために使用しているコードです:

しかし、このコンパイル時エラーが発生します(wsDriversは、フォームプロジェクトに追加したWeb参照の名前です):「ProjectNamespace.Common.wsDrivers.Driver型の値をProjectNamespace.Common.Driverに変換できません」

この「共通」名前空間にはDriverクラスが含まれていますが、Webサービスからの戻りクラスが単なる一般的な「Driver」ではなく「wsDrivers.Driver」である理由がわかりません。変換できません。それを元に戻します。このタイプの不一致に対処する方法を知っている人はいますか?

編集:説明をありがとう-これは実際にそれが何をしているのかを明らかにします。ただし、プロキシの代わりに実際の型を使用するように強制できる方法はありますか(または、「実際の」インスタンスと「プロキシ」インスタンスの間で変換する方法はありますか)、または有線で送信する前にプロパティをシリアル化してから、戻り値を手動で逆シリアル化しますか?

0 投票する
3 に答える
4510 参照

.net - プロキシ クラスではなく、ローカル オブジェクト クラスを使用するように .NET Web サービスを強制する

Windows フォーム アプリケーション (両方とも .NET、両方とも同じソリューション内) から呼び出している Web サービスがあり、Web サービスがプロジェクトの他の場所からカスタム オブジェクトを返すようにしたいと考えています。私のソリューションの 3 番目のプロジェクトにあるため、どちらも参照を共有しています。Web サービスを呼び出すと、"Person" オブジェクトが返されますが、これは Web サービスの名前空間にあり、Web サービス自体が生成したプロキシ クラスから作成されます。そのため、それを操作して、webservice 名前空間からのプロキシ コピーではなく、クラスの共有コピーに基づく "Person" オブジェクトを期待しているプログラムに返すことができず、試してみるとエラーが発生します。正しいクラス型に CType します。

プロキシ コピーではなく、クラスのローカル コピーを使用するよう Web サービスに強制するにはどうすればよいですか? この文脈で私の質問は意味がありますか? そうでない場合は、明確にします。

注 - すべてのパラメーターを ByRef に渡し、返された値を使用して、返されたときに作成したオブジェクトのコピーを作成することにしました。これは最善の方法ではありません。

0 投票する
2 に答える
291 参照

c# - C# プロキシと var キーワード

この質問は、私の以前の投稿に関連しています。基本的に、DAOをエンティティに挿入したい

ここで、DAO にカスタム メソッドがある場合は、基本的にそれらをエンティティ オブジェクトにラップする必要があります。したがって、IUserDAO.Register() がある場合は、それをラップするために User.Register() メソッドを作成する必要があります。

より良いのは、DAO からのメソッドが User オブジェクトに動的に割り当てられるプロキシ オブジェクトを作成することです。したがって、次のようなものがあるかもしれません:

これは、User エンティティをネットワーク上でのデータ転送に適した非常に馬鹿げたクラスとして保持できることを意味しますが、魔法のように多数の DAO メソッドを与えることもできます。

しかし、これは私の快適ゾーンから非常に外れており、これを達成するには何が必要なのだろうかと思いました。Castles Dynamic プロキシを使用できますか? また、C# コンパイラはこれに対処し、動的に追加されたメソッドについて知ることができますか?

これがナンセンスである場合は、遠慮なくお知らせください。

編集:

そのために必要なことは、コンパイル時に DAOProxyService.Create() を User オブジェクトを返すものとして何らかの形で宣言することです。これは、ジェネリックで行うことができます。

私が返したいのは User オブジェクトではなく、UserDAO メソッドが動的に追加された User オブジェクトです。このクラスはどこにも定義されていないため、コンパイラはそれをどうするかわかりません。

私が本質的に返しているのは、次のような新しいオブジェクトです: User : IUserDAO なので、必要に応じてキャストできると思います。しかし、これは面倒なようです。

私が探しているのはこれに似ているようです: Mixins

0 投票する
1 に答える
2747 参照

.net - Activator.GetObject - MarshalByRefObject

.Net Activator.GetObject(Type type, string url, object data) では、プロキシをオブジェクトに返します。プロキシは MarshalByRefObject から継承され、AppDomains 間で送信できると思います。私は正しいですか?

私のアプリでは、appdomain A でオブジェクトを作成し、それを appdomain B で使用しています。オブジェクトのメンバーは、Activator.GetObject () を使用して作成された proxyobjects です。そのため、AppDomain B にいるときは、appdomain A で作成されたオブジェクトへの透過プロキシがあります。プロキシ オブジェクトでメソッドの呼び出しを実行しようとすると、エラーが発生します。

たとえば、App Domain B に Connection オブジェクトを作成します。App Domain A に Connection オブジェクトの透過プロキシがあります。AppDomain A からこのような呼び出しを行おうとすると、エラーが発生します。 ConnectionObject.SecurityProxy.GetSecurityAccount ( )。問題のように見えますが、上記のような呼び出しを行うと、呼び出しを AppDomain B に転送するのではなく、AppDomain A で SecurityProxy を再度作成しようとしています。オブジェクトが作成されました。

私が間違っていることを理解するのを手伝ってもらえますか?

よろしく、アニル。

0 投票する
2 に答える
2828 参照

c# - 制御の反転/アスペクト指向の意味での .NET プロキシ オブジェクトとは何ですか?

制御の反転/アスペクト指向の意味でのプロキシ オブジェクトとは何ですか?

プロキシ オブジェクトとは何かについての良い記事はありますか?
なぜあなたはそれを使いたいのですか?
そして、C#でどのように書くのですか?

0 投票する
3 に答える
3003 参照

.net - プロキシクラスのない.NETWebサービス

任意のWebサービス(実行時に提供するURL)で実行時に指定されたメソッドを実行できるアプリケーションを作成しようとしています。Type.InvokeMemberを使用して任意のメソッドを実行する方法を理解しましたが、プロキシクラスを作成せずに使用するWebサービスを指定するにはどうすればよいですか。

Web参照なしでWebサービスを呼び出すにはどうすればよいですか?これは、すでにWSDLを持っていて、URLのみが変更される場合に役立ちますが、任意のWebサービスを呼び出して結果をフェッチできるようにしたいと思います。

ありがとう。

0 投票する
1 に答える
2049 参照

nhibernate - 複合 ID を持つ Nhibernate の予期しないプロキシ オブジェクト

複合 ID を使用するデータ構造があります (これを単一に変更したくありません) 結合が空の場合、プロパティを null にマップする代わりに、空の結合にマップする多対 1 結合を除いて、すべて正常に読み込まれます。プロキシ オブジェクト。私は醜い回避策を書きました(以下を参照)。これに対する解決策はありますか?

プライベート ノード _Parent;

}

マッピングファイルで始まる

およびアクセス元

0 投票する
4 に答える
2969 参照

java - Java で、プロパティの変更時にメソッドを呼び出すオブジェクトの周りに「プロキシ ラッパー」を構築するにはどうすればよいですか?

Proxy patternまたはDynamic Proxy Classesに似たものを探していますが、メソッド呼び出しが実際のオブジェクトで呼び出される前にインターセプトしたくないだけで、変更されているプロパティをインターセプトしたいだけです. プロキシが、異なるプロパティ セットを持つ複数のオブジェクトを表現できるようにしたいと考えています。Action Script 3 の Proxy クラスのようなもので十分です。

一般的に達成したいことは次のとおりです。

プログラム内の他のスレッドによって渡された値 (数値、文字列、オブジェクト) のリストを管理するオブジェクトで実行されているスレッドがあるため、クラスはチェックポイントの目的でディスク上に定期的に永続的なスナップショットを作成することができます。アプリケーション。この持続オブジェクトは、最後のチェックポイント以降に値のリストが変更されたかどうかを示す「ダーティ」フラグを管理し、ディスクへの書き込み中にリストをロックする必要があります。

パーシスタと他のコンポーネントは共通名で特定のアイテムを識別します。これにより、クラッシュから回復するときに、他のコンポーネントは最初にパーシスタに最新のコピーが保存されているかどうかを確認し、中断したところから作業を続けることができます。

通常の操作中に、永続化に渡されたオブジェクトを操作するために、元のオブジェクトのように見えるプロキシ オブジェクトへの参照を受け取りたいのですが、その値を変更するたびに、永続化たとえば、実際の値を実際に設定する前にアイテムまたはリストをダーティとしてマークするなど、通知してそれに応じて動作します。


編集: あるいは、Java に (PHP 5 のような) 一般的なセッター、つまり、プロパティが存在しない場合に呼び出されるメソッドがありますか? または、実行時にプロパティを追加できるオブジェクトのタイプはありますか?

0 投票する
1 に答える
493 参照

actionscript-3 - ActionScript での Vararg メソッドのラップ

別の vararg メソッドのプロキシとして機能させたい vararg メソッドがありますが、その方法がわかりません。基本的なコードは次のとおりです。

Java からコードを移植しています。型システムは、引数が実際には配列ではなく文字列であることを認識しているため、引数を直接渡すことで b() を呼び出すことがわかり、すべてがあなたのやり方で機能します。予想。

しかし、ActionScript では、proxy メソッドを介して呼び出されると、引数配列が別の配列にラップされます。

したがって、b() が直接呼び出された場合、配列の深さは 1 レベルのみです。ただし、b() が a() を介して呼び出されると、配列は 2 レベルの深さになります。

これを回避するためのトリックを知っている人はいますか?

(注: 私の実際のコードでは、a() と b() は実際には別のクラスにあり、b() の実装にはまったく触れたくありません。a() は心ゆくまで書き直すことができます。ただし、b() は変更しないでください。)