インターセプターを介してnhibernate トランザクション処理を実装しようとしていますが、流暢なメカニズムを介してインターフェイスを登録する方法がわかりませんでした。
私は見る
Component.For<ServicesInterceptor>().Interceptors
しかし、それを使用する方法がわからない。誰かが私を助けることができますか?この例は少し複雑に見えました。
インターセプターを介してnhibernate トランザクション処理を実装しようとしていますが、流暢なメカニズムを介してインターフェイスを登録する方法がわかりませんでした。
私は見る
Component.For<ServicesInterceptor>().Interceptors
しかし、それを使用する方法がわからない。誰かが私を助けることができますか?この例は少し複雑に見えました。
次の 2 つの手順で行います。
container.Register(Component.For<MyInterceptor>());
Interceptors
て、このコンポーネントをインターセプトする登録済みインターセプターを (キーまたはタイプで) 指定します。container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
詳細については、ドキュメントを参照してください。
最初にインターセプターを登録します。
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
次に、傍受されるオブジェクトを登録します。
container.Register(Component.For<IMyService>().ImplementedBy<MyService>().Named("MyService").Interceptors(new InterceptorReference("transactionInterceptor")).Anywhere);