2011-01-23 10 views
0

ninject wikiのすべてと多くの投稿を読んだが、これを参照できるように注入を設定する方法がまだ分かりませんプロパティ。私は、基本クラスコンストラクタのプロパティを参照して、コントローラが作成されたときに最終的に共通のViewBagプロパティを設定できるようにしたいと考えています。 iInitializableインターフェイスを実装するのは適切なアプローチですが、これを行う方法がわかりません。また、派生クラスのコードを単純化するために、IMyServiceを基本クラスのコンストラクタに挿入しないことを選択しました。コードの私の最新の試みの基本クラスのコンストラクタでProperty Injectionで定義された基本クラスのプロパティにアクセスする

簡体版:

public class AppController : Controller 
{ 

    [Inject] 
    public IMyService myService{get; set;} 

    public AppController() 
    { 
     //I want to do this, but myService is null 
     //ViewBag.DefaultName = myService.Name; 
    } 

} 

public class DashboardController : AppController 
{ 
    public ActionResult Index() 
    { 
     //myService is accessible, so injection works 
     return View(); 
    } 
} 

答えて

1

プロパティは、コンストラクタの後に注入されているが、あなたがコンストラクタ・インジェクションを使用するか、オブジェクトがインスタンス化された後にそれらにアクセスする必要があることを意味呼ばれています。あなたはあなたのコントローラを実装することができますIInitializable

+0

ダーリン、merci。これは私が必要とした明確化でした。 – RCM01