2 Stimmen

Registrieren eines Interceptors mit der Castle Fluent-Schnittstelle

Ich versuche zu implementieren nhibernate Transaktionsabwicklung durch Abfangjäger und konnte nicht herausfinden, wie man die Schnittstelle durch einen fließenden Mechanismus registriert.

Ich sehe eine

Component.For<ServicesInterceptor>().Interceptors

aber ich bin nicht sicher, wie ich es verwenden soll. Kann mir jemand weiterhelfen? Dieses Beispiel schien ein wenig komplex zu sein.

6voto

Krzysztof Kozmic Punkte 26952

Sie tun dies in zwei Schritten:

  • Sie müssen den Interceptor als Dienst im Container registrieren:
container.Register(Component.For<MyInterceptor>());
  • Sie registrieren die Komponente, die Sie abfangen wollen. Verwendung von Interceptors Methode der fluent API geben Sie an, mit welchem der registrierten Interceptoren (nach Schlüssel oder Typ) Sie diese Komponente abfangen wollen:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>()
   .Interceptors<MyInterceptor>());

Siehe die Dokumentation für weitere Einzelheiten.

1voto

Otávio Décio Punkte 72052

Registrieren Sie zunächst den Abfangjäger:

container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));

Registrieren Sie dann das abgefangene Objekt:

container.Register(Component.For<IMyService>().ImplementedBy<MyService>().Named("MyService"). Interceptors(new InterceptorReference("transactionInterceptor")).Anywhere);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X