이것이 가능한지 확실치 않지만 런타임에 Ninject를 사용하여 인터페이스를 구체 구현으로 채우는 Entity Framework를 사용하여로드하고 저장할 수있는 클래스를 갖고 싶습니다. Ninject를 EntityFramework Entity 객체에 사용할 수 있습니까?
는이 같은 생성자 시작 : 이것은 지금까지 Ninject에 간다 작동public FancyObject(ICatProvider kitty)
{
this.kitty = kitty;
}
, 우리는 고양이를 얻을 - 그것은 엔티티 프레임 워크를 사용하여 SQLServer입니다 엔티티를 저장하기 위해 작동합니다. 그러나 Entity Framework에 매개 변수없는 생성자가 필요하기 때문에 엔터티를로드하려고 할 때 오류가 발생합니다.
그래서 나는이 같은 속성에 퍼팅 시도 :[Inject]
public ICatProvider kitty { get; set; }
public FancyObject()
{
}
이것은 DB에서로드 할 수 있지만, 키티는 항상 null입니다. 바인딩에
내가 가진 모든입니다 : 내가 엔티티를 생성 할 엔티티 프레임 워크를 사용하고 있는데 그렇게해서 Ninject가의 모양을 받고 있지 않기 때문에이 추측하고있어
kernel.Bind<ICatProvider>().To<FancyFileBasedCat>();
.
내가 여기에 명백한 것을 놓치고 있습니까? 이것을 할 수있는 좋은 방법이 있습니까?
예, 아마도 가장 세련된 디자인이 아닙니다. 수동으로 각 인스턴스를 주입해야 할 필요가 있습니다. 그것은 냄새 나는 의존성 때문에 만 필요합니다. 나는 당신이 옳다고 생각합니다. 더 높은 차원에서 그것을 주입하고 필요에 따라 엔티티로 전달하는 것이 더 나은 해결책 일 수 있습니다. 감사. – Kaine