【发布时间】:2011-11-06 08:49:35
【问题描述】:
我有一个在 Repository 中实现的 IRepository,并且我将特定类型的 Repository 扩展为 UsersRepository 我需要使用 Ninject 的通用绑定绑定所有类型,但是在请求 IRepository 的实例时,我需要获取 UsersRepository 而不是 Repository。
Bind<IDbContext>().To<SMSDataContext>()
.WithConstructorArgument("connectionStringName", "dbcsname");
我在这里绑定通用存储库:
Bind(typeof(IRepository<>)).To(typeof(Repository<>))
.WithConstructorArgument("dbContext",new SMSDataContext("dbcsname"));
这里我尝试绑定一个特定的实例:
Bind<IRepository<Setting>>().ToConstant(settingsRepository);
尝试使用“.ToConstant”和仅使用“.To”的不同方法还尝试绑定到具体实现,如下所示:
UsersRepository usersRepository = new UsersRepository(new SMSDataContext("SMSDB"));
Bind<IRepository<Setting>>().To<SettingsRepository>().WithConstructorArgument("dbContext", new SMSDataContext("dbscname")); ;
请指教。
【问题讨论】:
-
感谢您的编辑:)。
标签: repository ninject ninject-2