Utilizzando il Castello di Windsor, ho un componente configurato con lo stile di vita transitorio:Castle Windsor: il mio componente transitorio verrà raccolto dai rifiuti?
<component id="publish.mapping.default"
service="IMyService, MyAssembly"
type="MyServiceImplementation, Myassembly"
lifestyle="transient" />
che sarà utilizzato in questo modo:
var service = container.Resolve<IMyService>(componentId);
// service usage ....
// service goes out of scope ...
La mia domanda è, sarà l'istanza del servizio essere garbage collection dopo va fuori dal campo di applicazione, o il castello Windsor resterà in attesa di un riferimento? Ho trovato this similar question, che implica che quest'ultimo potrebbe essere il caso - ma dopo aver esaminato i collegamenti pubblicati lì, non sono sicuro se la discussione riguardi il mantenimento del riferimento, o di assicurare che l'oggetto sia disposto se implementa IDisposable. I miei oggetti non hanno bisogno di essere smaltiti.
Se Castle Windsor trattiene l'istanza, esiste un modo semplice per prevenirlo (forse per configurazione)?
EDIT
Sembra, che ho bisogno di impostare la politica di rilascio di tracciamento. Può essere configurato nel file di configurazione xml o deve essere impostato nel codice? È possibile impostare la politica di tracciamento della versione su base componente?
Grazie. Sai se questo può essere configurato su base per componente? (Vedi la modifica alla mia domanda) – driis
Io non la penso così. In realtà non uso Castle (mi piacerebbe), ma i documenti sembrano suggerire che sia Kernel-wide. Non sono sicuro se questa sia la cosa giusta da fare, ma potrebbe essere possibile aggiungere una politica personalizzata che presta attenzione al tipo di componente ... –
L'impostazione di una politica di rilascio è ampia. In effetti esistono documentazioni che specificano che l'impostazione di una politica di rilascio è una delle prime cose che devono essere fatte dopo aver creato un'istanza del contenitore. Se questa regola non viene rispettata, alcuni componenti verranno creati utilizzando una politica di rilascio specifica e altri utilizzando un altro. Ciò potrebbe comportare un'alta probabilità di causare perdite di memoria. – Chai