問題タブ [linfu-dynamicproxy]
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.
.net - LinFu.DynamicProxy と Castle.DynamicProxy の違いは何ですか?
私が取り組んでいるライブラリに、動的プロキシが必要になるロジックを追加しようとしています。これら 2 つのライブラリを実稼働環境で使用しているユーザーからアドバイスをもらいたいと思います。一方が他方よりも優れているか、他のものに切り替えなければならない欠点があったかなど。基本的に、ライブラリの経験を教えてください。答えは、どちらを使用するかを決定するのに役立ちます。
- 編集 -
私が開発しているライブラリは Mono をサポートすることを忘れていました。したがって、2 つのライブラリとそれらの Mono のサポートについて共有できる知識があれば、それも素晴らしいことです。
nhibernate - バージョン 2.1.2 へのアップグレード後に Nhibernate が機能しない
最近、NHibernate の実装をバージョン 2.1.0 から 2.1.2 に変更しました。遅延読み込みには、NHibernate.ByteCode.Linfu を使用して LinFu 実装を使用しました。
最新バージョンに変更したため、次のエラーが発生しました。
デバッグ中に次のエラーが発生しました。
これは NHibernate.ByteCode.LinFu の使用によるものですか? アプリケーションを再び機能させるにはどうすればよいですか?
c# - インターセプト、解析、コンパイルする方法は?
これは私がしばらく解決するのに苦労してきた問題です。メソッド内のコードをコンパイル時にテンプレートから解析されたコードに置き換えるか(PostSharpが思い浮かびます)、動的プロキシを作成する方法(LinfuまたはCastle)が必要です。したがって、このようなソースコードが与えられます
これにコンパイルする必要があります
どのテクノロジーを使用するかは重要ではありません。PostSharpのImplementMethodAspectを試してみましたが、どこにも行きませんでした(経験不足のため)。Linfuフレームワークも調べました。誰かがこれを行うための他のアプローチや方法を提案できますか、私は本当に感謝します。私のプロジェクト全体はこれに依存しています。
仮定:
- コードはどのクラスにも表示できます。
- テンプレートコードには常に属性[テンプレート]の注釈が付けられます
- テンプレートメソッドは常に文字列を返します。
あるフォームから別のフォームへのコードの解析はすでに完了しています。今、私はそれを交換する方法が必要です。
「ビーファー」の例:
nhibernate - NH3.2 の LinFu バイトコード プロバイダーはどこにありますか?
NHibernate の 3.2 リリースには含まれておらず、どこにもありません。
それはどこにありますか?
nhibernate - NHibernate3.2の場合はNHibernate.ByteCode.LinFu.dll
NHibernate 3.2に対してコンパイルされたNHibernate.ByteCode.LinFu.dllの最新バージョンはどこにありますか?
c# - Ninject 傍受の動的プロキシの問題
しばらく依存性注入フレームワークとして使用してきた Ninject で動作するように傍受をセットアップしようとしています。
NuGet から傍受拡張機能をダウンロードし、Castle Dynamicproxy 実装と LinFu 実装の両方で試してみましたが、アプリケーションでは動作しませんでした。
パラメーターなしのコンストラクターを持たないクラスでプロキシを作成すると、Castle はエラーを発生させました。これは、すべてのサービス オブジェクトにコンストラクターを介して注入された依存関係があるためです。これは問題です。エラーは次のとおりです。
System.ArgumentException: クラスのプロキシをインスタンス化できません: emedia.RapidSystems.Subscriber.Presenters.RRSubmissionPresenter. パラメーターなしのコンストラクターが見つかりませんでした。パラメータ名: constructorArguments
LinFu インターセプターは、コードが汎用パラメーターを使用してメソッドを呼び出すまで、より適切に機能し、次のようになりました。
System.ArgumentException: ジェネリック型は無効です。パラメータ名: methodInfo
これは、傍受しようとしているクラスの 1 つの簡略化されたバージョン コードです。
Add と GetAll は正常に動作しますが、GetEntity がプロキシで呼び出されるとエラーが発生します。
この時点で、どちらのインターセプターもコード ベースで機能しないため、私は立ち往生しています。単純なデモクラスではなく、実際の複雑な実稼働システムで Ninject インターセプトを使用した人はいますか? もしそうなら、どのように? 機能する限り、どのインターセプターを使用してもかまいません。
それとも、Ninject による傍受はまだ十分に成熟していないのでしょうか。全体を Unity のような別のものに置き換えることを検討する必要がありますか?
c# - 商用アプリケーションでのLinFu.DynamicProxyでのAutomapperの使用
Automapperを商用アプリケーション(.NET 3.5)で使用したいと考えています。クリアランスを取得するには、automapperのソースコードが必要です。
必要なautomapperソースコードを取得しましたが、コードをビルドした後、使用しているDLLが108KBであるときにautomapper.dllのサイズが86KBであることがわかりました。アプリケーションはこの86KBオートマッパーdllで動作していませんでした
コードを調べたところ、サイズ21KBの別のDLLLinFu.DynamicProxyが見つかりました。このDLLをオートマッパーDLLアプリケーションで使用すると、正常に動作します。
これに基づいて、私が使用していた108KBのdllには、実際には86KBのAutomapper +21KBのLinFu.DynamicProxyが含まれていると結論付けました。
今、私はライセンスに関連する質問があります。LinFu.DynamicProxyの承認も取得する必要がありますか?GNUライセンスが付属しています。