Ich habe IWindsorContaner, das für die gesamte Lebensdauer der Anwendung existiert. Für Unittests ist es möglich, Mocks / Stubs usw. unter ihrem Typ zu registrieren. Wenn der Test beendet ist und die Fixtur entsorgt ist, werden die registrierten Komponenten für den Test mit einer selbst erstellten Methode namens "Unregister" entfernt.
Nun möchte ich auf die neueste Castle-Version aktualisieren, die 3.0 ist. Laut 3.0 Release Notes ist so etwas wie
%Vor%ist nicht mehr möglich, da die IKernel.RemoveComponent-Methode entfernt wurde. Die Beschreibung, um das zu beheben, ist nicht wirklich ausreichend ("Versuche, IHandlerSelectors zu verwenden.").
Eine vereinfachte Version der Fixture, die ich für Unittests verwende:
%Vor%}
Wie kann ich Komponenten mit Castle 3.0 entfernen?
Anstatt zu versuchen, alle Komponenten zu entfernen, erstellen Sie einfach eine neue IWindsorContainer
und binden Sie diese an das, was GetOrCreateContext
prüft. Dann haben Sie einen frischen, neuen Behälter, an den nichts gebunden ist.
Tags und Links .net c# castle-windsor castle