2009-11-07 3 views

Répondre

0

Si vous faites référence au chargement des assemblages non statiquement hors de la boîte, non, il ne le fait pas.

Il y a beaucoup d'autres questions à ce sujet, par exemple, Using Ninject in a plugin like architecture

12

Je suis sûr que c'est ce que vous cherchez:

var kernel = new StandardKernel(); 
kernel.Load(Assembly.Load("yourpath_to_assembly.dll"); 

Si vous regardez kernelbase avec réflecteur en Ninject. dll vous verrez que cet appel récursive charge tous les modules dans les ensembles chargés (méthode de charge prend un IEnumerable)

public void Load(IEnumerable<Assembly> assemblies) 
{ 
    foreach (Assembly assembly in assemblies) 
    { 
     this.Load(assembly.GetNinjectModules()); 
    } 
} 
3

je pas tout à fait sous tenez ce que vous voulez dire par "Like Unity", mais vous pouvez faire quelques choses différentes pour le chargement des assemblages. Ninject chargera lui-même les assemblages locaux pour les extensions/plugins par défaut. Ninject peut également charger des classes NinjectModule à partir d'assemblages. Si vous voulez faire quelque chose de plus complexe, vous pouvez utiliser le projet Ninject.Extensions.Conventions pour effectuer de nombreuses analyses et types de liaisons.

+0

Pouvez-vous s'il vous plaît fournir plus de détails sur la façon de rendre Ninject "charger les classes NinjectModule des assemblées"? Le wiki de Ninject couvre des choses assez basiques. –

+0

Ok, je l'ai eu maintenant, j'ai mélangé des versions de Ninject dans mon projet. –

+0

Le lien fourni vers GitHub est cassé. Le lien actuel est https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic

Questions connexes