2010-09-05 8 views

Répondre

1

Si vous avez accès à l'objet Kernel créé Application_Start soit par un moyen d'une Common Service Locator référence statique ou [de préférence] , vous devriez pouvoir appeler Bind<T>() sur l'objet pour mettre à jour le contexte.

Je n'ai pas personnellement essayé cela, mais il est conforme à la structure de la classe.

+0

Il n'y a rien de préférable à propos de CSL, bien qu'un M3 CSL soit OK: P –

0

(Certains de ces réponses à l'autre question plus, mais j'espère que cela aide globalement) Vous n'appelez pas vraiment Bind<T>() sur les instances d'objet, vous faites cela pour enregistrer les liaisons qui sont ensuite utilisées pour résoudre de nouvelles instances via Kernel.Get<T>() ou en utilisant Kernel.Inject(@object) pour injecter [typiquement uniquement les propriétés (comme vous ne construisez pas)] dans un objet non créé sous le contrôle de Ninject.

Pendant que Inject objets Ed seront activés, etc., leur portée, etc. ne fonctionne pas toujours de la même manière. Peut-être que vous pouvez développer exactement ce services spécifiques que vous espérez gagner autre que l'injection de propriété pour clarifier? (Voir le cache and collect opus pour les détails de la gestion de la durée de vie)