問題タブ [linfu]
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# - LinFu による動的プロキシの生成
LinFu とのインターフェース用の動的プロキシを構築しようとしています。プロキシは、インターフェイスによって定義されたプロパティの getter メソッドを実装し、たとえばキーがプロパティ名であるディクショナリから値を返す必要があります。
c# - LinFu-私がやりたいことをする方法がよくわかりません
LinFuを見つけたばかりです-非常に印象的ですが、私がやりたいことを行う方法がよくわかりません-これは、ミックスインによる多重継承です(VB5/6日間で言うように構成/委任-面倒な反復委任コードを生成するためのツール-私がLinFuを見つけたのと同等のC#を探していたとき)。
さらに編集:構成/委任とミックスインの意味を明確にするため。
より多くの「サブクラス」で使用される、より多くのプロパティを持つオブジェクトを想像してみてください。退屈な作業が始まります。コード生成ツールは実際には問題ありません...
したがって、LinFu ....以下のミックスインの例は問題ありませんが、実際のPersonクラス(上記のように)が必要です-LinFu風の方法は何ですか?それとも私は全体のポイントを逃しましたか?
編集:私はすでにサブクラス化されているクラスでこれを行うことができる必要があります。
nhibernate - NHibernate 2.1 の LinFu バージョン
アプリケーションのデータ層を (2.0.1 から) NH バージョン 2.1.0 に移行していて、LinFu の使用に気付きました。私はそのフレームワークを発見し、それをアプリケーションの他の部分で使用したいと考えています。特に、LinFu.DynamicProxy への参照を必要とする LinFu.Reflection.dll を使用したいと考えています。 can find on google.code は、NHibernate 自体が使用するバージョンとは異なります。利用可能なバージョンへの参照を変更して NHibernate.ByteCode.LinFu.dll を再構築する必要がありますか? そうでない場合、他に何がありますか?
c# - 城の動的プロキシの作成
クライアントとサーバーの間にレイヤーが配置される設計を実装しており、サーバーから取得したオブジェクトはすべて、透過的なプロキシでラップしてクライアントに渡すことで、オブジェクトの変更内容を追跡できます。 、そのため、保存するときは、変更された情報のみを送信します。
城の動的プロキシである linfu を調べましたが、プロキシ タイプを生成できますが、既存のオブジェクトを取得してラップすることはできません。
これらのフレームワークでそれが可能かどうか、またはこれを可能にする他のフレームワークがあるかどうか疑問に思っています...
asp.net-mvc - LinFu プロキシ オブジェクトのターゲットを見つける
これはかなり重複した質問ですが、Castle Dynamic Proxy を使用する代わりに、LinFu を使用しています プロキシ オブジェクトの基になる型を取得しています
自動マッパーを使用して、Asp.net MVC のビューモデルに送信するインターフェイスのプロキシを作成しています。私の問題は、MVC のデフォルトの MetadataProvider がモデルで .GetType() を呼び出すことによってプロパティとメタデータを見つけることができることです。
つまり、EditorFor() および DisplayFor() テンプレートはフィールドを生成しません。私がしなければならないことは、プロキシ ターゲット タイプを見つけて、テンプレートを生成することです。名前を解析して GetType( "thename" ) を使用できることはわかっていますが、簡単な方法があるかどうか疑問に思っていました。
c# - アセンブリ内のすべてのタイプの LinFu インターセプターの作成
DAL アセンブリのすべてのメソッドに対して LinFu インターセプターを作成しようとしています。私はこのようなことをすることができますが:
これは非常に面倒で、新しいリポジトリがアセンブリに追加されるたびに手動で更新する必要があります。
アセンブリ内の型ごとにプロキシ クラスを自動的に作成する方法はありますか?
アップデート:
著者自身 (Laureano 氏) からの提案を使用してプロキシ ビルダーを更新したので、次のようになりました。
インターセプターは以前のようにセットアップされます。私が今抱えている問題は、プロキシ オブジェクトに元のオブジェクトのコンストラクタとメソッドが含まれていないことです (ジェネリック create メソッドでオブジェクトを使用していると推測しています)。
これを必要な型にキャストするだけですか、それとも根本的に間違ったことをしていますか?
ありがとう。
linfu - linfu 2.3 はどこかでリリースされていますか?
linfu.core バージョン 2.3 を参照するプロジェクトや記事を目にしますが、こちらの linfu Web サイトにアクセスすると、バージョン 2.2 しか表示されません。
linfu.core バージョン 2.3 をダウンロードする場所を知っている人はいますか??
performance - トラフィックの多いWebサイトでのLinFuIoCのベストプラクティス
私たちは非常にトラフィックの多いウェブサイト(週に約600万ページのインプレッション)をまとめる最終段階にあり、新しいアーキテクチャ内のIoCコンテナとしてLinFuを使用しています。
かなり標準的な設定があります。
Webレイヤーには、ページで必要とされるServicesオブジェクトのインスタンスを提供するLinFu ServiceContainer(実装ではシングルトン)のインスタンスがあります。DataRepositoryアセンブリ内の各クラスも同じ方法で作成されます(各Servicesコンストラクターは、必要なDataRepositoryオブジェクトのインターフェイスを取り込みます)。
簡単な例は次のとおりです。
(およびDataRepositoryクラスの同様の機能)
現時点では、ライフサイクルタイプをデフォルトのままにしています(これはPerRequestだと思います)。
私の主な質問は次のとおりです。
- ServiceContainerをWebアプリ内のシングルトンとして保持する必要がありますか?
- 実装クラスのLifecycleTypeをデフォルト値として保持する必要がありますか?
これは少し制限がないことは知っていますが、負荷テスト中に調整を行っている最中なので、一般的な意見に非常に興味があります。
c# - .net 動的プロキシのコスト
動的プロキシを使用するコストはいくらですか?
プロジェクトをインターフェイス実装で乱雑にしたくないので、LinFu、Castle、Unity などのサードパーティ ライブラリによって作成された動的プロキシを使用することを検討しています。インターフェイスごとに 1 つのインスタンスを生成するか、呼び出しごとに 1 つ取得しますか。
これはWebアプリなので、長期的にはパフォーマンスの問題は何ですか.
私もEF 4.1(現時点ではCTP5)を使っているので、プロキシクラス自体を作成する場合は、EF独自の動的プロキシ作成ツールを使用できるかどうか疑問に思っています。
PSはい、私のインターフェースは他のインターフェースや基本クラスとともに具象クラスによって実装されていますが、具象クラスに付属する余分なものではなく、インターフェース部分のみが必要な場合があります。
すべてのインターフェイスは、EF4.1 POCO の一部のみを宣言します。つまり、ゲッターとセッターだけです。
c# - オブジェクトの既存のインスタンスに対するダックタイピング / 動的プロキシ
ライブラリに渡され、さまざまなプロセスを経たオブジェクトがあります。これらのオブジェクトがさまざまな段階を通過して反対側に出るときに、これらのオブジェクトにいくつかの追加情報を添付する必要があります。既存の動作を変更するのではなく、追加のプロパティを追加することを除いて、一種の動的デコレータ パターンだと思います。
LinFu または Castle を使用して動的プロキシを作成し、オブジェクトに追加のインターフェイスを実装してこれを保存することを望んでいました。拡張インターフェイスを認識しているコンポーネントは、それをキャストしてアクセスできますが、そうでないコンポーネントは、基になる型が変更されていないため、認識されていません。
しかし、これらすべてのメカニズムが、型が最初に作成される時点を制御できると想定していることを認識していませんでした。
これにもっとうまくアプローチする方法について誰か提案がありますか?
どうもありがとう