Я использую asp.net MVC 2 и Ninject 2.
Настройка очень проста.
Контроллер вызывает службу, которая вызывает хранилище.
В моем контроллере я использую inject для создания экземпляров классов обслуживания без проблем. Но классы обслуживания не создают экземпляры репозиториев, давая мне исключение NullReferenceException.
public class BaseController : Controller
{
[Inject]
public IRoundService roundService { get; set; }
}
Это работает. Но тогда это не ...
public class BaseService
{
[Inject]
public IRoundRepository roundRepository { get; set; }
}
Предоставление исключения NullReferenceException при попытке использовать roundRepository в моем классе RoundService.
IList<Round> rounds = roundRepository.GetRounds( );
Модуль классов ...
открытый класс ServiceModule: NinjectModule
{
публичное переопределение void Load ()
{
Bind () .To () .InRequestScope ();
}
}
public class RepositoryModule : NinjectModule
{
public override void Load( )
{
Bind<IRoundRepository>( ).To<RoundRepository>( ).InRequestScope( );
}
}
В global.axax.cs
protected override IKernel CreateKernel( )
{
return new StandardKernel( new ServiceModule( ),
new RepositoryModule( ) );
}