asp.netMVC2とNinject2を使用しています。
セットアップはとても簡単です。コントローラは、リポジトリを呼び出すサービスを呼び出します。
私のコントローラーでは、injectを使用してサービスクラスを問題なくインスタンス化します。しかし、サービスクラスはリポジトリをインスタンス化しないため、NullReferenceExceptionが発生します。
public class BaseController : Controller
{
[Inject]
public IRoundService roundService { get; set; }
}
これは機能します。しかし、これはしません...
public class BaseService
{
[Inject]
public IRoundRepository roundRepository { get; set; }
}
RoundServiceクラスでroundRepositoryを使用しようとすると、NullReferenceExceptionが発生します。
IList<Round> rounds = roundRepository.GetRounds( );
モジュールクラス-
public class ServiceModule : NinjectModule
{
public override void Load( )
{
Bind<IRoundService>( ).To<RoundService>( ).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( ) );
}