Ich versuche, mein Web-API-Projekt zu verkabeln, um Castle Windsor für IoC zu verwenden
Ich habe das für meine Controller getan, indem ich diesen ausgezeichneten Artikel gelesen habe.
Ich versuche nun Abhängigkeiten in mein DelegatingHandler und ActionFilterAttribute
einzufügenIch habe versucht, die Techniken zu kopieren, die für Filter in regulären ASP.Net MVC verwendet werden, aber sie scheinen nicht in Web API zu gelten
Hat jemand es geschafft, dass das funktioniert?
Ich bin nicht sicher, was der relevante Erweiterungspunkt in der Web API ist
Ich habe gesehen, dass das vorgeschlagen wird
%Vor%aber nicht sicher, ob es einen besseren Weg gibt. Ich würde es vorziehen, den Mechanismus anzuzapfen, der diese Handler / Filter erstellt.
Dies riecht nach Service Location für viele Handler. Gibt es einen einzigen Punkt, an dem alle Handler erstellt werden?
irgendwelche Ideen?
Da die Sammlung MessageHandlers
global ist, handelt es sich effektiv um eine Liste von Singletons. Dies ist in Ordnung, wenn der Handler selbst keinen Status und keine Abhängigkeiten hat, aber in einem System, das auf den SOLID-Designprinzipien basiert, ist es sehr wahrscheinlich, dass diese Handler Abhängigkeiten haben und sehr wahrscheinlich, dass einige dieser Abhängigkeiten eine benötigen Lebensdauer, die kürzer ist als Singleton.
Wenn dies der Fall ist, sollte ein solcher Message-Handler nicht als Singleton erstellt werden, da eine Komponente im Allgemeinen nie eine Lebensdauer haben sollte, die länger ist als die Lebensdauer ihrer Abhängigkeiten.
Die Web-API verfügt jedoch über keine Hooks, die es ermöglichen, einen solchen Handler bei jeder Anfrage aufzulösen, aber ein solcher Mechanismus kann leicht mit einer Proxy-Klasse erstellt werden:
%Vor%Dieser Proxy kann wie folgt verwendet werden:
%Vor% Der Proxy ist ein Singleton, aber er löst den angegebenen MyCustomHandler
bei jeder Anfrage auf.
Es scheint heute keinen Erweiterungspunkt zu geben. Es gibt jedoch eine Anfrage dazu in Ссылка
Tags und Links asp.net-web-api c# dependency-injection inversion-of-control castle-windsor