Dependency injection 根据注入目标类型绑定到不同的上下文
我希望能够使用ninject将不同类型的DBContext注入应用程序的不同区域。有人知道你是否可以用ninject-When子句来实现这一点吗 大致如下:Dependency injection 根据注入目标类型绑定到不同的上下文,dependency-injection,ninject,Dependency Injection,Ninject,我希望能够使用ninject将不同类型的DBContext注入应用程序的不同区域。有人知道你是否可以用ninject-When子句来实现这一点吗 大致如下: Bind<DbContext>().To<ServiceContext1>().When(t=>t.Target.Type.Assembly.FullName.StartsWith("Namespace.Context1.")); Bind<DbContext>().
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<>));
Bind().To().When(t=>t.Target.Type.Assembly.FullName.StartsWith(“Namespace.Context1”);
Bind().To().When(t=>t.Target.Type.Assembly.FullName.StartsWith(“Namespace.Context2”);
绑定(typeof(IRepositoryDataSource))。到(typeof(DbContextRepositoryDataSource));
绑定(typeof(IRepository))到(typeof(SimpleRepository));
request.Target.Type返回参数类型。您正在查找request.Target.Member.ReflectedType
。由于将上下文注入到相同的存储库中,您可能必须使用request.ParentRequest
检查父请求,甚至检查父级请求,而不是检查请求,因为在那里您将始终获得存储库类型