私はここにいるので、私の最初の質問は誰とも混乱しないことを願っています。[Castle.DynamicProxy]作成されたプロキシオブジェクトには、元のオブジェクトのプロパティが正しく設定されていません。
私はAOPとIOCを統合するためにCastle WindsorとCastle DynamicProxyを一緒に使用していますので、プロジェクト内のすべてのサービスを傍受してロギングサービス(および監査など)を実装できます。
私は解決済みのインスタンスをプロキシしようとしていますが、これは完了しましたが運がないためです。返されるプロキシは、解決されたインスタンスのプロパティをnullに設定するためです。以下は、参照用のデバッグ情報です(PROBLEMATICプロパティはTimeServiceです)。
the resolved instance before proxied
前にプロキシ解決インスタンス。
プロキシになるオブジェクト
は、私が何かを逃したのか、私は間違った方法で城DynamicProxyを理解したのですか?私は解決策を探したが運がなかった。
すべての回答が高く評価されます。前もって感謝します。
container.Register(
Component.For<ICalcService>()
.Interceptors(InterceptorReference.ForType<ReturnDefaultInterceptor>()).Last,
Component.For<ReturnDefaultInterceptor>()
);
は、詳細はドキュメントを参照してください:
答えが非常にありがとうございます。これは私にとってはうまくいきます。もう1つの質問ですが、このソリューションは各コンポーネント(コードまたは設定ファイルのいずれか)のインターセプタ設定が必要なようですが、すべてのthに自動的に適用されるインターセプタ電子コンポーネント? –
@SkyFengコンベンションドリブン登録(Classes.FromAssemblyContaining()など)を使用していない場合は、コンテナをフックします。 ComponentRegisteredおよびComponentModel.Interceptorsに追加します。 –
入手しました。どうもありがとう。 @jonathon-rossi –