J'ai une interfaceAjouter usine de soutien pour une inscription Windsor Dynamiquement
public interface IResolver<T>
{
T Resolve();
}
Je sais que ce n'est pas l'idéal (localisateur de services est un anti-modèle et tous), mais dans certains cas, il est encore nécessaire (par exemple l'activation du service WCF - Je ne veux pas instancier le canal tant que Resolve() n'est pas appelé explicitement ... et dans le cas de BasicHTTP, le canal peut avoir besoin d'être Resolve() plusieurs fois, car le canal est fermé après chaque appel d'opération). Et avoir une usine injectée beats ayant le conteneur lui-même injecté dans un constructeur, non?
Je souhaite que toute classe qui hérite d'IResolver soit enregistrée automatiquement en tant qu'usine lorsqu'elle est enregistrée dans le conteneur. C'est-à-dire, je veux appeler automatiquement AsFactory sur ComponentRegistration avant que l'enregistrement soit traité.
Comment pourrais-je accomplir cela?
Merci d'avance.
Donc je n'ai pas besoin d'enregistrer quelque chose avec AsFactory pour que l'usine l'utilise? – Jeff
En outre, la documentation indique que je ne devrais pas utiliser NoTrackingReleasePolicy avec la facilité et que je dois utiliser LifecycledComponentsReleasePolicy ... mais ce n'est vraiment pas possible, car j'ai besoin que mes autres composants transitoires soient libérés normalement (et non dans le récipient pour toujours). – Jeff
Je vois maintenant (vérifié avec un WeakReference) que la dernière version de Windsor n'a plus le problème qu'elle tient sur les références des composants transitoires ...? – Jeff