Я настроил «Ninject» в своем проекте asp.mvc. И это прекрасно работает, каждый контроллер получает свои классы зависимостей. Но у меня есть один класс в проекте MVC, который не является контроллером. Это простой класс, который расширяет "MembershipProvider" (потому что я сделал пользовательское членство), и мне нужно добавить в него класс "UserRepository".
В NinjectControlelrFactory я вписываю это:
private void AddBindings()
{
ninjectKernel.Bind<IUserRepository>().To<UserRepository>().WithConstructorArgument(
"connectionString", ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
}
Но как получить его из класса, не относящегося к контроллеру?
PS
Я не могу ввести через конструктор.
У меня есть какое-то решение, но я не знаю, насколько оно «чистое»:
using (IKernel kernel = new StandardKernel())
{
kernel.Bind<IUserRepository>()
.To<UserRepository>()
.WithConstructorArgument("connectionString", "ttttttttttttt");
//var tc = kernel.Get<IUserRepository>();
this.userRepository = kernel.Get<IUserRepository>();
}