我試圖使用Castle Windsor重新使用我的WebApp設置類(MySettings
)的單個實例。 這個設置很少改變,但是當它改變時,我需要更新容器中的實例。 我可以很容易地跟蹤「設置」更改的時間,但我無法弄清楚正確的方法,任何人都可以幫助我嗎?Castle Windsor更新實例屬性
溫莎Installer類是波紋管:
public class SettingsInstaller : IWindsorInstaller
{
private MySettings Settings { get; set; }
public void Install(IWindsorContainer container, IConfigurationStore store)
{
UpdateSettings();
container.Register(
Component.For<MySettings>()
.Instance(this.Settings));
}
public MySettings UpdateSettings()
{
using (DbContext db = new DbContext())
{
this.Settings = db.Settings.FirstOrDefault();
}
return this.Settings;
}
}
我如何可以調用UpdateSettings()
並確保容器將在接下來的依賴注入的分辨率,使用更新Settings
?
我的答案在下面有幫助嗎?我認爲這將大大簡化您的代碼,如果它是你正在尋找:) – topher
在你的解決方案中,我可以更新一個設置,但我需要重新加載MySettings。因爲我的設置可以在MVC CRUD中更新。所以主要的問題是:我可以更新一個單例實例嗎? – mqueirozcorreia
如何訪問MySettings以更新它?如果您使用構造函數注入將其傳遞到控制器中,那麼只要您使用依賴注入來解析控制器,它就會每次都是相同的實例。 – topher