MVCのベースコントローラでは、以下の注入コードがあり、完全に動作していました。Ninject停止したMyプロパティの挿入
[Inject]
private INavigationRepository navigationRepository { get; set; }
[Inject]
private ISessionService sessionService { get; set; }
私は、ビルドエラーを得ることはありません、それはと死のイエローページでUPSを示し、「System.NullReferenceException:オブジェクトのインスタンスに設定されていないオブジェクト参照」 navigationRepositoryを参照するコードの最初の行を指します。
私はそれが機能していて、変更をバックアップしたにもかかわらず、まだエラーが発生しているので、コードの変更はごくわずかです。私は下のコードでそれを回避することができますが、私は注射を失う。どのようにこれに取り組む上の任意の考え?
private INavigationRepository navigationRepository;
private ISessionService sessionService;
public BaseController()
{
navigationRepository = new NavigationRepository();
sessionService = new SessionService(new VolunteerRepository());
}
+1良い答え。ちなみに、最近、あなたと一緒にやってくれた素晴らしい作品に感謝します。 – StriplingWarrior
2番目の@StriplingWarriorのコメント。また、これをDIについての最も重要なポイントの1つとして+1してください。 –
私はプロップインジェクションを握っているうちにこれについて知りませんでしたが、インジェクションが必要なベースクラスに4つのものがあり、派生クラスにそれらを強制したくないのであれば、答えはあなたに欠けている概念があるということですクラス内にカプセル化されています - プロップインジェクションからリファクタリングするために使用します。 IOWプロパティの注入は、常に常に悪い考えです - あなたはそれから離れてrefacotr十分にahrdをしようとしていません。 "私の場合は違う - 私はPIの存在を正当化する惑星に特別な場合がある" –