ein Interceptor mit Schloss Fluent Interface registrieren
-
24-09-2019 - |
Frage
Ich versuche, zu implementieren nhibernate Transaktionsabwicklung durch Abfangjäger und konnte nicht herausfinden, wie die Schnittstelle durch fließend Mechanismus zu registrieren.
Ich sehe ein
Component.For<ServicesInterceptor>().Interceptors
aber nicht sicher, wie es zu benutzen. Kann jemand mir helfen, aus? Dieses Beispiel ein wenig komplex zu sein schien.
Lösung
Sie tun es in zwei Schritten:
- Sie müssen die Abfangjäger als Dienst im Behälter registrieren:
container.Register(Component.For<MyInterceptor>());
- registrieren Sie die Komponente, die Sie abfangen wollen. Mit
Interceptors
Methode fließend API angeben, welche der registrierten Abfangjäger (durch Schlüssel oder Typ) Sie diese Komponente abfangen wollen, mit:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
Siehe die Dokumentation für weitere Details.
Andere Tipps
Zuerst registrieren Sie den Interceptor:
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
registrieren Dann wird der Einspruch abgefangen:
container.Register (Component.For
(). ImplementedBy (). Benannt ( "MyService"). Interceptor (neu InterceptorReference ( "TransactionInterceptor")) überall);.