【发布时间】:2011-09-04 13:18:00
【问题描述】:
我在我的 asp.mvc 项目中设置了“Ninject”。它工作正常,每个控制器都得到它的依赖类。但是我在 mvc 项目中有一个不是控制器的类。这是一个扩展“MembershipProvider”的简单类(因为我已经自定义了成员资格),我需要在其中注入“UserRepository”类。 在 NinjectControlelrFactory 中,我将其绑定:
private void AddBindings()
{
ninjectKernel.Bind<IUserRepository>().To<UserRepository>().WithConstructorArgument(
"connectionString", ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
}
但是如何从非控制器类中获取它呢? 附言 我无法通过构造函数注入。
我有一些解决方案,但我不知道它有多“干净”:
using (IKernel kernel = new StandardKernel())
{
kernel.Bind<IUserRepository>()
.To<UserRepository>()
.WithConstructorArgument("connectionString", "ttttttttttttt");
//var tc = kernel.Get<IUserRepository>();
this.userRepository = kernel.Get<IUserRepository>();
}
【问题讨论】:
标签: asp.net-mvc ninject