2009-12-15 3 views
3

J'ai une classe statique SessionFactory qui initialise une fabrique de sessions NHibernate. Parce que ce processus est coûteux (~ 5 sec.), Je veux qu'il soit statique, donc ce n'est fait qu'une seule fois, au début de l'exécution.Est-il possible d'utiliser Ninject avec une propriété statique?

La configuration peut prendre un paramètre de paramètre de base de données comme ceci:

public static IPersistenceConfigurer DbConfig { get; set; } 

public static void Initialize() 
{ 
    var cfg = Fluently.Configure() 
         .Database(DbConfig) 
         .Mappings(some mappings) 
         .BuildConfiguration(); 
} 

Est-il possible d'utiliser Ninject d'injecter DbConfig avec la constante correcte?

+1

Je n'utilise pas NInject, mais la mise en cache en tant que singleton est ce que vous voulez au lieu de la rendre statique – Paco

Répondre

3

Au lieu de faire ce statique, inscrivez-vous l'instance ISessionFactory (ToConstant()) puis enregistrer le ISession avec un champ de requête (InRequestScope)

This thread explique très clairement.

Questions connexes