0
내 클래스 (모델) 및 MVC 응용 프로그램의 컨트롤러에서 Ninject를 사용하는 방법을 찾아야합니다.MVC와 내 모델에서 동일한 Ninject 바인딩을 사용하는 방법
양면에서 동일한 바인딩을 사용하려면 어떻게해야합니까?
은 지금은 내가 NinjectWebCommon.cs
부트 스트랩을 내 커널을 초기화 생성 사용
public class NinjectDependencyResolver : IDependencyResolver
{
private IKernel k;
public NinjectDependencyResolver(IKernel kp)
{
this.k= kp;
AddBindings();
}
public object GetService(Type serviceType)
{
return k.Get(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return k.GetAll(serviceType);
}
private void AddBindings()
{
k.Bind<ISerializer>().To<MySerializer>();
}
}
MySerializer
내 직렬화 클래스입니다 : 같은
private static void RegisterServices(IKernel kernel)
{
System.Web.Mvc.DependencyResolver.SetResolver(
new WebApplication1.Models.NinjectDependencyResolver(kernel)
);
}
내 NinjectDependencyResolver
보인다. 내 컨트롤러
,이 부분은 잘 작동합니다.
그러나 이제 나는 다음과 같은 모델을 가정 해 봅시다 :
public class MyButton
{
ISerializer serializer;
public MyButton(ISerializer weapon)
{
serializer = weapon;
}
public string ToSString()
{
return serializer.serialize("my string - ");
}
}
가 어떻게 내 모델도 Ninject에 일을 할 수 있습니까?
감사합니다.
당신은뿐만 아니라 모델을 주입하고이 스레드처럼 다음private void AddBindings()
{
k.Bind<IMySerializer>().To<MySerializer>();
k.Bind<IModel>().To<Model>();
}
바인딩 또는 모델을 주입하지 않으면 당신이 할 수있는 일을 추가 할 수 있습니다
실제로 말한다 이 부분이 필요 ** 비 컨트롤러 클래스에 의존성을 주입하기 위해 ninject를 사용 **. 그들은 모델일지도 모릅니다. 나는 그 링크에서 제공되는 해결책을 이해하고 있는지 확신하지 못한다. – tzortzik