2
여기
은 내가하고 싶은 것입니다 :Ninject를 사용하여 명시 적으로 구현 된 메소드에 주입 할 수 있습니까?
public interface IInject<in T>
{
[Inject]
void Inject(T reference);
}
private class Foo : IInject<Bar>
{
public Bar Bar { get; private set; }
void IInject<Bar>.Inject(Bar reference)
{
Bar = reference;
}
}
을하지만 아무것도 주입하지 도착, 유일한 방법은 내가 직장에 도착 그 속성 및 암시 적 구현입니다 :
private class Foo : IInject<Bar>
{
public Bar Bar { get; private set; }
[Inject]
public void Inject(Bar reference)
{
Bar = reference;
}
}
할 수있는 방법이 있나요 그것?
질문에서 빠진 것은 * 왜 * 당신이 이것을하고 싶은지입니다. 메소드 주입은 일반적으로 [시간 결합] (http://blog.ploeh.dk/2011/05/24/DesignSmellTemporalCoupling/)으로 연결되기 때문에 좋은 생각이 아닙니다. – Steven
@Steven 동의 회원 가입은 불쾌합니다. 사이클 때문에 IoC에 친숙하지 않은 털이 많은 그래프를 물려 받았습니다. 이렇게하면 디자인을 좀 더 멋지게 리팩터링하는 동안 일시적인 것일뿐입니다. –