問題タブ [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# - キャッスル インターセプターがインターセプトしない
ログを追加したいコードがたくさんあります。私の計画では、Unity または Castle.Windsor を使用して傍受されたログ ルーチンを作成し、カスタム C# 属性を使用して既存のコードに追加することでした。既存のコード構造を変更することはできません (ただし、スタートアップ コンフィギュレーションを追加することはできるので、コンテナー登録のアプローチは問題ありません)。
これは呼び出し構造を変更しないと Unity では不可能に見えたので (インターセプトされたクラスを取得するには、インスタンス化を変更して登録済みの依存性注入を使用する必要がありました)、Castle.Windsor を試しています。私が持っているこのコードは、Intercept ルーチンを起動していません。
これは、Castle.Windsor で可能になるという希望を与えてくれました。Castle Windsor でロギング依存関係を注入します。
このロギング インジェクションを行うためのより良い方法はありますか? PostSharp 製織が理想的ですが、使用できません (費用とライセンス)。
.net - AttributeHandler から UnityContainer にアクセスする
メソッドが特定の属性で装飾されている場合、メソッド呼び出しをインターセプトするように Unity をセットアップしています。すべての Unity プロキシ オブジェクトを (一時的ではなく) 各スレッド内で持続させたいと考えています。
問題は、装飾属性によって作成されたオブジェクトが毎回「新しく」作成されることです。属性内から UnityContainer にアクセスする方法がわかりません。可能であれば、LogHandler をスレッドごとのエンティティとして作成し、Unity 経由でリクエストします。(これは意味がありますか?ユニティを使用して、ユニティ インターセプトで使用されるオブジェクトを解決しますか?)。
このコードを実行すると、ロガーによるカウント出力は常に「1」になります。明確にするために、この「LogHandler」は私が永続化したいものです。
コードの他の場所で Unity を介してオブジェクトをどのように解決しますか? Unityコンテナを回しますか?コードのどこからでもリクエストできるパターンはありますか?
c# - クラスとプロパティに割り当てられた Unity HandlerAttributes を実行する際の順序の違い
Unity v2.1 で Inteception パイプラインに使用している 3 つの属性があります。すべてが適切に起動しており、順序が間違っているだけです。
3 つの属性すべてで、対応する Handler に属性から Order を渡していることを確認しました。
したがって、以下の TestClass.TestProperty でセッターを呼び出すと、呼び出しハンドラーがValidation、Transaction、Notify の順序で呼び出されることを期待しています。私が見ているのはNotify, Transaction, Validationです。
グーグルを使っても答えが見つからないという 2 つの質問があります。
- TestClass.TestProperty を設定する私の例では、最初にプロパティ属性を呼び出し、次にクラス属性を呼び出すと仮定していますか? または、Unity は私の命令を尊重する必要がありますか?
2 つのプロパティ ハンドラーが最初に呼び出された場合、 Notify, Transactionは表示されません。Transaction と Notify Order のデフォルトをそれぞれ 1 と 2 にオーバーライドすると、期待どおりにTransaction, Notifyが得られます。私の注文が1から始まることは重要ですか.
/li>
unity-container - デバッガーが IInterceptionBehavior にステップ インします。呼び出す
Unity インターセプターに IInterceptionBehavior.Invoke を実装しましたが、すべて正常に動作しますが、VS デバッガーでプロキシ オブジェクトのステップ インをクリックしても機能しません (ターゲット メソッドまたは少なくとも Invoke メソッドにジャンプすると予想されます)。 )。VS デバッガーはステップオーバーのように動作します。VSへのヒントとしていくつかの属性を提供して、それにジャンプして無視しないようにする必要があります
ありがとう
unity-container - Unity Interception MethodSignatureMatchingRule を解決できませんでした
Unity (3.0) インターセプトを使用して、横断的な懸念をアプリケーションに追加しています。どういうわけか、構成で MethodSignatureMatchingRuleを使用できず、次のエラー メッセージが表示されます。
私の構成:
NamespaceMatchingRuleを使用した同じ構成は正常に機能します。
私のアセンブリにはへの参照が含まれています
- Microsoft.Practices.EnterpriseLibrary.Common
- Microsoft.Practices.Unity
- Microsoft.Practices.Unity.Configuration
助言がありますか?
c# - Unity インターセプトのコンセプトの明確さ
プロジェクトに Unity を実装するために、 Unity Interceptionリンクをたどっています。
リンクに従って、以下に示すようにクラスを作成しました。
これまで、私は特別なことは何もしていません。上のリンクで説明されている例に従っているだけです。しかし、Unity Interception クラスを実装する必要があるとき、多くの混乱が生じました。
次のようなクラスのメソッドの 1 つに実装する必要があるとします。
これは私が立ち往生している主なものです。GetModelByID ()メソッドで Intercept クラスを使用する方法と、ユニティを取得する方法がわかりません。
助けてください。また、Unity Interception の概念についても説明してください。
c# - Unity で単一のインターフェイスの複数の実装を解決する
次のシナリオがあります。
クライアント側で:
解決 2 (コメントを参照) では、コンストラクターが見つからないというエラーが発生します。
基本的にFoo2クラスに解決したい。parameteroverrides を使用してみましたが、それもうまくいきませんでした。
これについて私を助けてください。