問題タブ [unity-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.
c# - 深い継承ツリーを持つオブジェクトのインターセプト
継承の深さが 3 のオブジェクト構造を持っています。オブジェクトは、単一の特定のインターフェイスを実装しています。インターフェイスの継承の深さは 4 です。私の最終的なオブジェクトは、ユニティ IoC を介して構築されています。このオブジェクトのすべてのパブリック メソッドをインターセプトする必要があります (どのインターフェイスで定義されているかに関係なく) が、使用するインターセプターの種類 (InterfaceInterceptor/TransparentProxyInterceptor/VirtualMethodInterceptor ) に関係なく、継承ツリーの最終クラスで定義されたメソッドのみを常にインターセプトします。以下のオブジェクト構造の図を参照してください。
オブジェクトは次のように Unity コンテナーに登録されます。
残念ながら、私のインターセプターは常にExecuteMyCommand()
メソッドに対してのみ呼び出されます。Unityコンテナを介して私が目指しているそのような傍受を行うことは可能ですか? Spring.NET AOP ライブラリを介してそれを達成しようとゆっくり考えています。
c# - InvocationContext がコンテンツを永続化しない
ディクショナリに値が追加されましたInvocationContext
が、次の呼び出しまで保持されません。つまり、インターセプトされたチェーン内の各呼び出しは、 に対して false を返しますInvocationContext.ContainsKey("tracing-id")
。
にエントリを追加することはできますがInvocationContext
、getNext()(input, getNext)
が呼び出されて次の呼び出しがインターセプトされると、InvocationContext
は空になります。
の使い方を誤解しInvocationContext
ていますか?もしそうなら、あるメソッド呼び出しから次のメソッド呼び出しまで ID のようなものを永続化する正しい方法は何ですか?
c# - Unity(3.5) インターセプトが MVC で機能しない
Interception
を使用して組み込みPolicyInjectionBehavior
、このエラーを取得しようとしています:
例外情報: 例外の種類: ResolutionFailedException 例外メッセージ: 依存関係の解決に失敗しました。タイプ = "CSR.Presentation.Controllers.HomeController"、名前 = "(none)"。例外が発生しました: コンストラクター Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequestinterceptionRequest、Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy[] ポリシー、Microsoft.Practices.Unity.IUnityContainer コンテナー) を呼び出しています。例外: ArgumentException - 渡される型はインターフェイスでなければなりません。
Interception
登録でコードを除外すると、正常に動作します。のコンテナをループすると、Output Window
すべての登録がそこにあるように見えます。Interception
また、手動で登録してコードを含めると、それも機能します。多くのインターフェースがあり、それらを個別に登録したくありません。これが私がやっていることです-この順序で:
c# - MVC 5 での Unity(3.5) インターセプト
アプリケーションで使用しようとしInterception
ていMVC
ます。私が抱えている問題は、コントローラーにあります。コントローラーがUnity
コンテナーに登録されており、インターフェイスがないため、エラーが発生しています。コントローラーをプロセスから除外する方法が必要だと思いますInterception
か、それとも何か他のことができますか? これは可能ですか、実行可能ですか?SO で同様の質問をしましたが、受け取ったコメントに基づいて、別の質問を作成するのが最善だと感じています。
エラーは次のとおりです。
例外情報: 例外の種類: ResolutionFailedException 例外メッセージ: 依存関係の解決に失敗しました。タイプ = "CSR.Presentation.Controllers.HomeController"、名前 = "(none)"。例外が発生しました: コンストラクター Microsoft.Practices.Unity.InterceptionExtension.PolicyInjectionBehavior(Microsoft.Practices.Unity.InterceptionExtension.CurrentInterceptionRequestinterceptionRequest、Microsoft.Practices.Unity.InterceptionExtension.InjectionPolicy[] ポリシー、Microsoft.Practices.Unity.IUnityContainer コンテナー) を呼び出しています。例外: ArgumentException - 渡される型はインターフェイスでなければなりません。
コードは次のとおりです。
asp.net-mvc-4 - カスタム Unity インターセプト動作またはエンタープライズ ライブラリ ブロック、どちらが AOP に適していますか?
MVC アプリケーションでどのパスを使用するかを決定しようとしており、AOP アプローチに従いたいと考えています。Unity カスタム インターセプト動作と Enterprise Library 6 の使用の長所と短所を誰でも説明できますか?
実際の実装からの経験と教訓は非常に役に立ちます。ありがとうございます。
unity-container - 慣例とインターセプトによる登録により、ResolutionFailedException が発生する
シンプルなシナリオ
インターフェイスを手動で登録すると、MyController の解決がうまくいきます。
自動登録を使用しようとすると:
渡された Type はインターフェイスでなければならないため、解決は ResolutionFailedException で失敗します。もちろん、インターフェイスにすれば機能しますが、Controller という名前の場合のみです。MyController や SqlController などを呼び出すと、インターフェイスを解決できないため、マッピングは失敗します。
Springフレームワークと同様に、アセンブリスキャンを実行したいと思っていましたが、理解できませんでした。
私は何が欠けていますか?それともUnityではできないのでしょうか?
.net - Unity を使用してインスタンスをインターセプトしますか? 特定のタイプをグローバルにインターセプトする
プロパティが使用されるとすぐに、特定のクラスのインスタンスを常に傍受する方法を探しています..
たとえば、MyTestClass が傍受される場合、これにより傍受がトリガーされます。
それはメソッド「get_SomeProperty」をインターセプトします..しかし、Unityを使用して見たすべての例では、container.Resolve();を介してMyTestClassのインスタンスの作成を「パイプ」する必要があります..それを避けたい. . それは可能ですか?.. 以前に Castle.DynamicProxy を使用してこのようなことをしたことがあると確信しています.. しかし、私の現在のアプリケーションにはたまたま Unity がインストールされていたので、可能な限り Unity を再利用するのは良い考えのように思えました。可能。
container.Resolve() を使用しないもう 1 つの理由は、私のこのインスタンスが、コンテナーへの論理参照を持たない MVC アクション内で作成される可能性があることです。コンストラクタは非常に良いアイデアです..
ブラ、インクス