2012-01-06 17 views
1

ninjectを使用して、アプリケーションのさまざまな領域に異なるタイプのDBContextを注入できます。誰かがあなたがninjectのWhen節でこれを行うことができるかどうかを知っていますか?線に沿って注入ターゲットに応じて異なるコンテキストにバインドする

何か:

 Bind<DbContext>().To<ServiceContext1>().When(t=>t.Target.Type.Assembly.FullName.StartsWith("Namespace.Context1.")); 
     Bind<DbContext>().To<ServiceContext2>().When(t => t.Target.Type.Assembly.FullName.StartsWith("Namespace.Context2.")); 
     Bind(typeof(IRepositoryDataSource<>)).To(typeof(DbContextRepositoryDataSource<>)); 
     Bind(typeof(IRepository<>)).To(typeof(SimpleRepository<>)); 

答えて

3

request.Target.Typeパラメータの型を返します。あなたはrequest.Target.Member.ReflectedTypeを探しています。コンテキストを同じリポジトリに注入するので、おそらくリポジトリタイプを取得するため、親要求をrequest.ParentRequest、またはリクエストではなく祖父母でチェックする必要があります。

+0

ええ、ありがとう、parentRequestは魅力を働いた –

関連する問題