Ninject V2를 사용 중이며 ASP.NET 응용 프로그램의 컨텍스트에서 사용하고 있다고 가정하면 연결을 수행하려면 Ninject.Web을 사용해야합니다.
는 그런 다음에 푹 Factory Method support와 글로벌 클래스를 설정 : 모듈을 등록하는
public class Global : NinjectHttpApplication
{
protected override Ninject.IKernel CreateKernel()
{
var kernel = new StandardKernel(new Module());
kernel.Components.Add(new FuncModule());
return kernel;
}
}
그 무언가에 Bind
IMemberRepository
이 같은
public class Module : NinjectModule
{
public override void Load()
{
Bind<IMemberRepository>().To<MemberRepository>();
}
}
하고 페이지 전선까지 :
public class ThePage : PageBase
{
readonly Func<Registrant> _createRegistrant;
public ThePage(Func<Registrant> createRegistrant)
{
_createRegistrant = createRegistrant;
}
private void OnCreateRegistrant()
{
var newRegistrant = _createRegistrant();
}
}
NB 확실하지 않음 생성자 삽입이 Web Forms 페이지에서 지원되거나 위의 요구 사항이 속성 주입으로 떨어지면 ... 누구입니까? 다음과 같이 :
public class MemberRepository : IMemberRepository
{
}
public interface IMemberRepository
{
}
public class Registrant
{
private readonly IMemberRepository _memberRepository;
public Registrant(IMemberRepository memberRepository)
{
_memberRepository = memberRepository;
}
}
+1 젠장 당신이 가지고있는 클래스를 가정
가 (있다, 단지 질문을 다시 읽기 -이 명확하게 정답입니다! 필자는 [Inject] 애트리뷰트를 가지고 있고 마술이 작동하지 않는다고 설명하고 예제 코드를 설정하고 asp.net 태그를 보았을 때 문제가 생겼다는 것을 설명하기 시작했다. –
감사합니다. 나는 그 이야기가 될 수 있다고 생각했기 때문에 질문은 매우 개방적이었습니다 :-) 나는 리팩토링에 대한 조언도 취할 것입니다. – Myster