2012-03-07 8 views
0

私はかなり城とNinjectに新しいです。誰かが達成するためにどのように言及してくださいすることができますどのようにこれまで私はインターフェイスをファクトリメソッドとしてISessionFactoryImplementorを注入する際に今、私たちはこの城とは対照的に、冒険の遂行には、

public void Install(IWindsorContainer container, IConfigurationStore store) 
    { 


     container.Register(Component.For<ISessionFactoryProvider>().AsFactory()); 

     container.Register(Component.For<IEnumerable<ISessionFactory>>() 
            .UsingFactoryMethod(k => k.ResolveAll<ISessionFactory>())); 

    } 

のように行っている。この

public class LazySessionContext 
{ 
    private readonly ISessionFactoryImplementor factory; 
    private const string CurrentSessionContextKey = "NHibernateCurrentSession"; 

    public LazySessionContext(ISessionFactoryImplementor factory) 
    { 
     this.factory = factory; 
    } 
} 

などのファクトリメソッドとして初期化された文を持っています何が同じですか?したがって、ISessionFactoryProviderが提供され、初期化されていますか?

答えて

1
kernel.Bind<ISessionFactoryProvider>().ToFactory(); 

は同等です。この構成に。あなたはNinject.Extensions.Factoryを使う必要があります。既定ではIEnumerable構成が存在します。

+0

拡張機能について教えてくれてありがとう、ninjectの拡張機能について知りませんでした:) – Joy

関連する問題