問題タブ [ninject-interception]
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.
asp.net-mvc-3 - Ninject.Extensions.Interception.DynamicProxyへの参照を追加すると、あいまいな一致の除外が発生します
ASP.NETMVC3アプリケーションでDIを実行するようにNinjectを構成しました。これは正常に機能しており、適切なクラスをコントローラーに挿入します。
Ninject.Extensions.Interceptionを追加してアプリケーションを操作しようとすると、あいまいな一致例外が発生し始めます。これは、Ninject.Extensions.Interception.DynamicProxyアセンブリを追加した場合にのみ発生します。このアセンブリを削除すると、再び正常に動作します。Ninject.Extensions.IntereceptionとCastle.Coreも参照しました。
アプリケーションでインターセプトを構成していないことに注意してください。参照を追加しているところですが、このエラーが発生し始めます。
Ninject2.2.1.0とNinject.Extensions.Interception2.2.0.0を使用しています。
スタックトレース:
[AmbiguousMatchException:あいまいな一致が見つかりました。]
System.RuntimeType.GetPropertyImpl(String name、BindingFlags bindingAttr、Binderバインダー、Type returnType、Type [] types、ParameterModifier []修飾子)+9402677 System.Type.GetProperty(String name、BindingFlags bindingAttr) +31
ninject.Extensions.Interception.Infrastructure.Language.ExtensionsForMethodInfo.GetPropertyFromMethod(MethodInfo method、TypeimplementationType)in c:\ Projects \ Ninject \ ninject.extensions.interception \ src \ Ninject.Extensions.Interception \ Infrastructure \ Language \ ExtensionsForMethodInfo.cs: 35 Ninject.Extensions.Interception.Planning.Strategies.InterceptorRegistrationStrategy.Execute(IPlan plan)in c:\ Projects \ Ninject \ ninject.extensions.interception \ src \ Ninject.Extensions.Interception \ Planning \ Strategies \ InterceptorRegistrationStrategy.cs:83 Ninject .Planning。<> c_DisplayClass3.b _1(IPlanningStrategy s)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Planning \ Planner.cs:68 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 series, Action
1アクション)c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Infrastructure \ Language \ ExtensionsForIEnumerableOfT.cs:23 Ninject.Planning.Planner.GetPlan(Type type)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Planning \ Planner.cs:68 Ninject.Activation.Providers.StandardProvider.Create(IContext context)in c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Activation \ Providers \ StandardProvider.cs:74Ninject.Activation.Context。 c:\ Projects \ Ninject \ ninject \ src \ Ninject \ Activation \ Context.cs:157のResolve()c:\ Projects \ Ninject \ ninject \ src \ Ninject \ KernelBase.csのNinject.KernelBase.b__7(IContextコンテキスト) :375
aop - Ninject クラス X のすべてのインスタンスをインターセプトする
私は AOP のさまざまなフレームワークの実装を試しており、Ninject が本当に気に入っていますが、私の人生ではうまくいかない基準が 1 つあります。
typeof(X) であるすべてのクラスに対してインターセプターを使用するようにしようとしています...これが私の現在のコードです:
私はもともと x.Binding.Blah ではなく x.Request.Blah を試していましたが、どちらの方法でも私が求めていた結果が得られなかったようです...そして、この驚くべき機能のドキュメントは非常に少なく、 Kernel.Intercept( ) 拡大...
うまくいけば、それは簡単な答えです!
ninject - Ninject特定の属性を持つメソッドをインターセプトしますか?
Ninject.Extensions.Interceptionを取得して、基本的に特定のインターセプターを属性を持つ任意のメソッドにバインドできるようにするにはどうすればよいですか...疑似コード:
次のようなクラスで:
ninject - パラメータ付きのNinject Interceptorsクラス
簡単な質問... Ninject インターセプターを使用して NFR を処理したいのですが、多くのクラスではコンストラクターに引数が必要です。彼らは引数付きのコンストラクターを許可することを検討していると読みましたが、現在エラーが発生します:
バージョン 2.2.1 を使用していますが、拡張機能サイトにタグ付きの 2.3 バージョンがあることに気付きましたが、これで問題は解決しますか? そうでない場合、これを回避する方法はありますか?
c# - How to set up an optional method interception with Ninject?
Suppose I have a class in which I want to sometimes* (but now always) intercept some (but not all) methods. The way I understand it, this can be done either with, say, InterceptAround()
in my Ninject module (in the higher-level code), or with an InterceptAttribute-derived attribute on those methods (at the implementation level).
I don't really like the first way of doing it, because it requires the consumer to know the details, there'll be many classes with many methods. But I don't like the second way either, since I don't see how to disable (or, rather, not to enable) the interception, as the attribute is fused with the code.
Is there some known approach to solve this problem?
*: for the lifetime of the application.
.net - Ninject を使用して、WCF および MVC 要求パラメーターに依存する特定の EF DbContext を注入する
Azure でホストされているMVC3 と WCF RESTサービスがあり、SQL Azure と Entity Framework 4.1 を ORM として使用しています。
このセットアップのスケーラビリティを高めるために、シャーディング スキームを導入したいと考えています。
Azure はステートレス ホスティング環境であるため、私のシステムでは、すべての要求にユーザー ID が入力されます。このユーザー ID を使用してハッシュを生成し、目的のデータベースを指す接続文字列を作成します (ユーザーによるシャーディング)。
現在、WCF および MVC 拡張機能を備えた Ninject を使用して、EF DbContext をリポジトリに挿入しています。コンテキストのライフサイクルはリクエスト スコープ内にあります (私の残りのサービスは aspnetcompatibility を使用します)。
私の質問は次のとおりです。このインジェクションを傍受し、DbContext に正しい接続文字列を設定するにはどうすればよいですか? たとえば、WCF でカスタム ServiceHostFactory を使用しますか?
Ninject.Interception 拡張機能を確認しましたが、サービスとコントローラーをアクティブ化する前に HTTP 要求をインターセプトするように設定する方法がわかりませんでした。
これにより、既存のコードをリファクタリングせずにシャーディングを使用できるようになります。
ninject - 基本クラス、つまりAと独立したインターフェイス、つまりICを実装する子クラスがバインディングに使用されている間にABaseクラスをインターセプトします。
ABaseクラスをインターセプトし、基本クラス(A)と独立したインターフェイス(IC)を実装するChildクラスをバインディングに使用します。
プロキシ化されたオブジェクトでnullに設定されるプロパティがAにある場合、問題が発生しますが、プロキシ化されたオブジェクトのインスタンスでは、デバッグビューでそのプロパティに適切な値があります。
正確には 、実際のコードを含む要点https://gist.github.com/424637484504b89789d6へのリンクを追加します。
誰か助けてくれたらとてもありがたいです。
乾杯、ジャニ
ninject-interception - 属性を介して Ninject-Interception を機能させることができませんでした。何が間違っていましたか?
EntLib Logging を使用してロギング フレームワークを構築し、属性を使用して、どのクラス/メソッドをログに記録するかを指定しようとしています。だから私はインターセプトが良い選択だと思います。私は Ninject と傍受の超初心者であり、属性を介して傍受を使用する方法に関するInnovatian Softwareのチュートリアルに従っています。しかし、アプリを実行すると、BeforeInvoke と AfterInvoke は呼び出されませんでした。助けてください、ありがとう!
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 のような別のものに置き換えることを検討する必要がありますか?
ninject - ニンジェクトインターセプター
caliburn.micro フレームワークを使用して WPF デスクトップ アプリケーションを開発しています。メソッド呼び出しをインターセプトできるように ninject インターセプターを構成したいと考えています。コードのあちこちに多くの try-catch ブロックがないように、集中化された場所で例外を処理するためにこれを行いたいと思います。
ninject ですべてを配線するたびに、システムが例外をスローするため、これを達成できませんでした。
だからここにいくつかのコードがあります:
AppBootstrapper の構成メソッドは次のようになります。
今私のインターセプターのインターセプトメソッド:
ビュー モデルのメソッドは次のようになります。
これが、インターセプターが機能するはずの方法です。しかし、プログラムを実行するたびに機能せず、ninject が SomeViewModel のインスタンスを ISomeViewModel に挿入しようとすると、プログラムの実行が失敗し、これがスローされる例外 (およびスタック トレース) です: http://pastebin .com/qerZAjVr
これで私を助けてくれることを願っています、事前に感謝します。