Je viens d'un arrière-plan avec Java et Spring, et je suis plutôt nouveau avec Castle Windsor. J'ai lu qu'il est important de savoir quand des composants transitoires seront libérés par Castle car il suit tous les composants créés. J'ai du mal à comprendre quand mes composants seront publiés. Voici les bases de mon modèle:Quand est-ce que Castle Windsor libère des composants transitoires?
Singleton -> Singleton Typed Factory -> Transient Objects
Si je libère la première singleton dans cette chaîne tous les objets transitoires créés par le typed factory être libérés? Y at-il un appel d'API que je peux faire pour vérifier si c'est le cas? Je ne trouve aucune documentation complète sur l'API sur le site Web de Castle Windsor. La documentation que j'ai trouvée ne me semble pas claire.
Éditer: Mon problème se résume à deux questions principales.
- Si j'ai un objet singleton (A) qui dépend d'une fabrique typée singleton (B) et que je libère un singleton A va-t-il réellement libérer B? Le billet de blog mentionné dans la réponse ci-dessous indique que les appels à libérer sur les objets singleton sont ignorés, donc mon hypothèse est non, il ne sera pas publié.
- Si une fabrique typée singleton est utilisée par plusieurs requêtes Web simultanément pour créer des objets transitoires et est libérée par l'une des requêtes Web, les objets transitoires seront libérés, qu'ils aient été créés à partir de cette requête Web ou pas? Il semble presque que faire des usines dactylographiées par demande de Web ou mode de vie transitoire est meilleur.
Dans votre modification, vous mentionnez les composants Transient dans les requêtes Web. Si c'est pour une application Web, pourquoi ne pas utiliser le mode de vie PerWebRequest (qui a un point de terminaison bien défini au niveau duquel les composants seront libérés)? – PatrickSteele
@PatrickSteele Si j'ai une fabrique de style de vie PerWebRequest, cela libèrera-t-il automatiquement tous les objets transitoires créés à la fin de la requête? – jjathman