1

動的プロキシを使用するコストはいくらですか?

プロジェクトをインターフェイス実装で乱雑にしたくないので、LinFu、Castle、Unity などのサードパーティ ライブラリによって作成された動的プロキシを使用することを検討しています。インターフェイスごとに 1 つのインスタンスを生成するか、呼び出しごとに 1 つ取得しますか。

これはWebアプリなので、長期的にはパフォーマンスの問題は何ですか.

私もEF 4.1(現時点ではCTP5)を使っているので、プロキシクラス自体を作成する場合は、EF独自の動的プロキシ作成ツールを使用できるかどうか疑問に思っています。

PSはい、私のインターフェースは他のインターフェースや基本クラスとともに具象クラスによって実装されていますが、具象クラスに付属する余分なものではなく、インターフェース部分のみが必要な場合があります。

すべてのインターフェイスは、EF4.1 POCO の一部のみを宣言します。つまり、ゲッターとセッターだけです。

4

2 に答える 2

1

オープンソースのImpromptu-Interfaceは、c# 4.0 を必要とし、使用する各インターフェイスと実装タイプの組み合わせに対して軽量のプロキシ タイプを作成し、それらをキャッシュに保持します。

そのため、特定の実装の周りにインターフェイス プロキシを作成すると (ExpandoObject は、設定方法に関係なく 1 つのタイプとしてカウントされます)、プロキシ タイプを生成するための 1 回限りのコストがかかります。悪いことではありません)そして、呼び出しごとに、プロキシなしで持つ静的呼び出しと、Microsoft のおかげで非常に最適化された dlr 動的呼び出しがあります。

于 2011-06-29T14:33:24.380 に答える
0

動的プロキシよりもスタブが必要なようです。おそらく、 Moqを見てみたいと思うかもしれません。私の知る限り、モックを作成するたびに異なるインスタンスが作成されますが、内部である種のタイプ キャッシュが保持されているかどうかはわかりません。これは単体テストを対象としたライブラリであるため、この種の使用はおそらく非正統的です。

于 2011-04-27T11:16:29.170 に答える