Castle Windsor Intercept Methodenaufruf aus der Klasse

Wir haben Komponentenregistrierungen in Castle Windsor Container wie so

void RegisterComponent<TInterface, TImplementation>() {
    var component = Component.For<TInterface>().ImplementedBy<TImplementation>();
    component.Interceptors<SomeInterceptor>();
    container.Register(component);
}

Wir haben jedoch das Problem, dass ein Methodenaufruf innerhalb der Klasse nicht abgefangen wird. Zum Beispiel haben wir eine Komponente wie

ServiceA : IService {

    public void MethodA1() {
        // do some stuff
    }

    public void MethodA2() {
        MethodA1();
    }

}

Und wenn wir @ anrufMethodA2 oderMethodA1 Methoden einer anderen Klasse werden abgefangen, aberMethodA1 offenbar nicht abgefangen, wenn von @ aufgerufMethodA2 da der Aufruf aus der Klasse stammt.

Wir haben einen ähnlichen Fall mit der Lösung gefundenCastle Dynamic Proxy fängt keine Methodenaufrufe ab, wenn es innerhalb der Klasse @ aufgerufen wi Die Lösung bietet jedoch die Erstellung von Komponenten und Proxys mithilfe vonnew Operator, der in unserem Fall nicht geeignet ist, da wir Container verwenden. Können wir diese Lösung mit Komponentenregistrierung wie oben verwenden? Oder gibt es andere Ansätze, um das Problem zu lösen?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage