2013-10-25 5 views
5

での結合は、私は、管理担当者は、アプリケーションでシステム全体の設定を変更できるようにしたいです。起動時にNinjectは私が現在</p> <p>に取り組んでいたアプリケーションに特定のシナリオで探していますランタイム

public class ApplicationSettings 
{ 
//bla bla bla 

} 

、私はアプリケーション設定の同じインスタンスがカーネル限りのために提供されることを理解してすべてが順調と良いです

public static void RegisterServices(IKernel kernel) 
{ 
    kernel.Bind<ApplicationSettings>().ToSelf().InSingletonScope(); 
} 

結合後にしているがアクティブである

私の質問はこれです。実行時にアプリケーションセッティングを変更する必要がある場合はどうしたらいいですか?そして、私はこの

public void ChangeSettings(IKernel kernel, ApplicationSettings setting) 
{ 
    var setting = kernel.Get<ApplicationSettings>(); 
    //change the values of the instance 
} 

質問、どのように私はになるように、後続の参照を結合カーネルを更新しないような何かをすることが可能となりますautomaticcallyカーネルに

をApplicationSettingsインスタンスの値を変更したいですシングルトンインスタンス>は新たに変更されたバージョンに

おかげ

答えて

10

どう再バインド<についてを参照してくださいだろうか?

public void ChangeSettings(IKernel kernel, ApplicationSettings setting) 
{ 
    var setting = kernel.Get<ApplicationSettings>(); 
    kernel.Rebind<ApplicationSettings>().ToConstant(setting); 
} 
関連する問題