2013-10-25 5 views
5

Я смотрю на определенном сценарии в приложении, которое я в настоящее время работает надNinject связывания во время выполнения

Я хочу, чтобы офицер администратора, чтобы иметь возможность изменять глобальные настройки в приложении.

public class ApplicationSettings 
{ 
//bla bla bla 

} 

В Startup, я следующее связывание

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

Все хорошо и хорошо, как я понимаю, что тот же экземпляр настроек приложения будет обслуживаться до тех пор, как ядро ​​является активным

Мой вопрос в том, что. Что делать, если мне нужно изменить настройки приложений во время выполнения. И я хочу automaticcally изменить значение экземпляра ApplicationSettings в ядре

Будет ли возможность сделать что-то вроде этого

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

Вопрос, Как обновить ядро ​​связывания так что последующие ссылки на экземпляр синглтон будет относиться к новой модифицированной версии

Благодарности

ответ

10

насчет Пересвяжите <>?

public void ChangeSettings(IKernel kernel, ApplicationSettings setting) 
{ 
    var setting = kernel.Get<ApplicationSettings>(); 
    kernel.Rebind<ApplicationSettings>().ToConstant(setting); 
} 
Смежные вопросы