신참 님의 질문 klaxxon.Ninject bindings 101
필자는 주입해야하는 종속성을 설명하는 다음 클래스와 인터페이스와 종속성의 구체적인 인스턴스를 주입해야하는 depender를 가지고 있습니다.
public interface IDependency { }
public class FooDependency : IDependency { }
public class Depender
{
[Inject]
public IDependency Dependency { get; set; }
public bool DependencyIsNull()
{
return Dependency == null;
}
}
나는 내 바인딩을 NinjectModule 인스턴스로 설정했습니다.
public class Bindings : NinjectModule
{
public override void Load()
{
Bind<IDependency>().To<FooDependency>();
}
}
다음은 종속성이 합성기에 주입되었다고 주장하는 단위 테스트 방법입니다.
[TestMethod]
public void TestMethod1()
{
var kernel = new StandardKernel(new Bindings());
var bar = new Depender();
Assert.IsFalse(bar.DependencyIsNull());
}
테스트가 통과 될 것으로 예상 했으므로 분명히 근본적으로 잘못된 일을하고 있지만 분명하지는 않습니다.
, 당신이 무엇을 기대 않았다 또한
을, 당신은 당신의 인터페이스
DependencyIsNull
방법이 있음을해야합니까? 이 Ninject는 .NET 런타임에 마술 적으로 연결되어 새로운 객체를 만들고이를 삽입 한 객체 생성 및 알림을 가로채는가? IoC 컨테이너는 마법의 유니콘이 아닙니다. 컨테이너/커널이 객체 그래프를 작성하고 컨테이너/커널에서 루트 객체를 요청하도록합니다. – Steven