2012-02-02 15 views
1

私は依存関係注入のためにninjectを使ってWinFormアプリケーションを開発しています。私の最初の問題は、インスタンス化されるフォームにパラメータ(DIの場合)があることでした。私はこれが助けになると考えて、無パラメータのコンストラクタを追加しました。問題は、コンストラクタ内のパラメータを持つコードがスキップされることです。ここではそれがどのように見えるか:frmSettingsフォームでninjectのdiとwinformsでパラメータのないコンストラクタを使う方法

private void mnuSettings_Click(object sender, System.EventArgs e) 
{ 
    frmSettings objForm = new frmSettings(); 
    objForm.Owner=this; 
    objForm.Show(); 
} 

:私のメインフォームで

コードを設定するので、私は_applicationProperties.GetExtractFileSaveLocationDirectory(呼び出すとき

private readonly IApplicationPropertiesInterface _applicationProperties; 

public frmSettings() 
{ 
    InitializeComponent(); 
} 

public frmSettings(IApplicationPropertiesInterface applicationProperties) : this() 
{ 
    _applicationProperties = applicationProperties; 
} 

)それが吹きます_applicationPropertiesは決して呼び出されませんでした。

私はこれを正しく構成していないのだろうと思っています。これを達成する最良の方法は何ですか。私の目標は、パラメータのないコンストラクタを呼び出すことですが、_applicationPropertiesも設定します。

ご協力いただき誠にありがとうございます。

+0

frmSettings。 –

答えて

0

私は、建物内にNinjectを持っていると、newが正常とは異なる動作をすると予想しているかもしれないと思います。 DIを蹴るにはkernel.Resolve<Something>をする必要があります。これらの落とし穴のほとんどは、the wiki

で詳しく説明されています。回答を編集して、外で行っていることの詳細を含めることはできますかこのフォームのお願い?一方

は、ここで大幅にオーバーラップし、いくつかの以前の質問です: - objFormが登録し、コンテナによって解決されなければならない

関連する問題